يتطلب إذن API لتفعيل مؤقت الموضوع

مرحباً!

أحاول تفعيل خاصية “إغلاق الموضوع بعد x أيام من آخر رد”، لكنني لا أستطيع تحديد الصلاحية المطلوبة. لا أريد منح صلاحية كتابة كاملة.

المنفذ (Endpoint) المحدد:
POST /t/{ID}/timer

مثال على الحمولة (Payload):

status_type=close&based_on_last_post=true&duration_minutes=20160

هل يمكن لأحد أن يوجهني في الاتجاه الصحيح، من فضلكم؟

شكراً جزيلاً مسبقاً!

مرحبًا ماثيو،

هل يمكنك مشاركة الخطأ الذي يتم تشغيله للمراجعة؟

مرحباً @pedro

دائماً ما كنت أستلم خطأ 403، ما لم تمنح صلاحيات كتابة كاملة.

من خلال التلميحات في واجهة API الخاصة بالروابط (URLs) المدعومة المختلفة، لا يبدو أن أي منها يطابق صيغة مؤقت الوقت (/t/{ID}/timer). لكن ربما أكون فاتني شيء ما :slight_smile:

أفضّل عدم منح صلاحيات كتابة كاملة، لذا أحاول تحديد الصلاحية المطلوبة لهذا الأمر على وجه التحديد.

شكراً!

على الأرجح أن خطأ 403 يتعلق بالصلاحية المطلوبة لنقطة نهاية مؤقت الموضوع (topic timer endpoint)، وليس بمعاملات duration_minutes أو based_on_last_post.

ينبغي التحقق من متطلبات الترخيص لنقطة النهاية في كود Discourse الحالي الخاص بـ POST /t/{id}/timer، بدلاً من الاعتماد فقط على الصلاحيات المعروضة في توثيق API. قد تتطلب عملية المؤقت نفس قدرات الكتابة/الإدارة على مستوى الموضوع المستخدمة في واجهة المستخدم، وهو ما يفسّر سبب عمل صلاحيات الكتابة الكاملة حالياً.

إذا كان هناك صلاحية أدق متاحة لمؤقتات الموضوع، فيجب أن يكون من الممكن تحديدها من خلال فحص الترخيص لنقطة النهاية والمنهجية المقابلة لسياسة/حارس (policy/guardian). وإلا، فسيكون تقييد مفتاح API لنطاق الموضوع المطلوب فقط أمراً مفضّلاً على منح صلاحيات كتابة أوسع.