كيف أدمج خدمة إشراف خارجية مع Discourse؟

مرحباً بالجميع،

نبحث عن دمج خدمة مراجعة خارجية من طرف ثالث مع منتدى Discourse الخاص بنا.

الهدف هو تمكين مزود المراجعة الخارجي من استرداد المنشورات المعلّقة للمراجعة، ومراجعتها عبر منصته الخاصة، وإرسال قرارات المراجعة (قبول، رفض، أو وضع علامة) مرة أخرى إلى Discourse.

أود معرفة ما يلي:

  • هل يدعم Discourse رسمياً هذا النوع من سير عمل المراجعة الخارجية؟

  • هل يمكن تنفيذ هذا الدمج بالكامل من خلال واجهة برمجة تطبيقات REST في Discourse؟

  • هل هناك طريقة موصى بها لاسترداد المنشورات المعلّقة وإرسال قرارات المراجعة برمجياً؟

  • هل توجد أي إضافات أو تكاملات أو ممارسات مثالية موجودة بالفعل لربط Discourse بمنصات المراجعة من أطراف ثالثة؟

في المثالي، نود إبقاء Discourse كمنصة النقاش الرئيسية مع تفويض عمليات المراجعة إلى مزود خارجي.

سيكون أي توجيه أو أمثلة على تنفيقات مشابهة موضع تقدير كبير.

شكراً مسبقاً!

ليس كميزة مخصصة، ولكن كل شيء في طابور المراجعة لدينا يمر عبر واجهة برمجة التطبيقات (API)، لذا فإن أي شيء يمكن للمستخدم القيام به في /review يمكن تنفيذه أيضًا عبر الـ API. لذلك يمكنك إنشاء مستخدم مخصص بصلاحية الإشراف للتكامل الخاص بك، وتوليد مفتاح API لهذا المستخدم.

نعم، لكن هناك العديد من الاختلافات في التفاصيل. لا يرى طابور المراجعة المنشورات إلا إذا كانت معلّقة (بناءً على إعدادات الموقع/الفئة/المستخدم) أو تم وضع علامة عليها بواسطة مستخدم. إذا كنت بحاجة إلى مرور كل منشور عبر نظامك، فستحتاج إلى استخدام خطافات الويب (webhooks) للمشاركات مثل post_created/post_edited.

يمكنك الاستعلام عن /review.json أو استخدام خطافات الويب مثل reviewable_created/reviewable_updated. يمكنك جلب العناصر الفردية باستخدام /review/:id.json — وسيشمل ذلك الإجراءات المتاحة والإصدار الحالي.

لإرسال إجراء، يمكنك استخدام PUT /review/:id/perform/:action_id?version=N. الإصدار مطلوب حتى لا تنشئ تعارضات إذا تغير العنصر بعد جلبه.

إذا كنت تريد معرفة كيفية تنفيذ إجراء معين، يمكنك هندسته عكسياً من خلال القيام به في متصفحك عبر واجهة Discourse ونسخ الطلب من تبويب الشبكة (network tab). راجع Reverse engineer the Discourse API

إضافة Discourse Akismet (وهي أقرب مثال على الأرجح) و Discourse AI هما كلتاهما إضافات رسمية من الدرجة الأولى يمكنها التواصل مع أطراف ثالثة كجزء من عملية وضع العلامات. قد تكون هذه الإضافات مفيدة للاطلاع عليها.