Admin

مدير شركة انكور التطويرية
طاقم الإدارة
ادارة انكور
إذا كنت تدير منتدى XenForo ولديك مجتمع على Discord، فمن المفيد أن تظهر المواضيع الجديدة في قناة Discord تلقائيًا بمجرد نشرها في المنتدى. في السابق كان تنفيذ شيء مشابه يعتمد غالبًا على إضافة خارجية أو على كتابة كود مخصص، لكن XenForo 2.3 أضاف دعم Webhooks إلى النظام نفسه، وهو ما يفتح الباب أمام ربط المنتدى بخدمات خارجية مثل Make وZapier وIFTTT.
ربط XenForo مع Discord عبر Make وWebhooks بدون إضافات

في هذا الشرح، الحصري على منتدى انكور التطويري، سنقوم بربط XenForo مع Discord عبر Make بحيث يؤدي نشر موضوع جديد في قسم نحدده داخل المنتدى إلى إرسال إشعار تلقائي إلى قناة Discord، دون تثبيت أي إضافة على XenForo ودون الحاجة إلى برمجة نظام التكامل بأنفسنا.

النتيجة التي نريد الوصول إليها بسيطة: موضوع جديد في XenForo → Webhook → Make → Discord

وسنجعل الرسالة التي تصل إلى Discord تحتوي على عنوان الموضوع، اسم كاتبه، القسم الذي نُشر فيه، ورابط مباشر إليه.​

ما الذي نحتاجه قبل البدء؟​

يجب أن يعمل المنتدى على XenForo 2.3 أو إصدار أحدث يدعم Webhooks، وأن تمتلك صلاحية الدخول إلى لوحة تحكم الإدارة. سنحتاج كذلك إلى حساب على Make، وسيرفر Discord تستطيع إضافة تكامل إليه.

لن نقوم بتركيب أية إضافة داخل XenForo، لأن إرسال الـWebhooks سيتم من خلال الميزة الموجودة في النظام نفسه.​

إنشاء Webhook داخل Make​

سنبدأ من Make أولًا، لأن XenForo سيحتاج إلى عنوان يستقبل البيانات التي يرسلها عند إنشاء موضوع جديد. بعد الدخول إلى Make، أنشئ Scenario جديدًا، ثم اضغط زر إضافة Module
إنشاء Webhook داخل Make

وابحث عن: Webhooks ومن الخيارات اختر: Custom webhook بعد ذلك أنشئ Webhook جديدًا وأعطه اسمًا واضحًا، مثل: XenForo New Threads سيقوم Make بإنشاء عنوان Webhook خاص بك. انسخ هذا العنوان لأننا سنضعه بعد قليل داخل لوحة تحكم XenForo.
إنشاء Webhook داخل Make

إذا ظهر لديك ضمن الإعدادات المتقدمة خيار يسمح باستقبال أو قراءة Request Headers، فقم بتفعيله؛ سنستفيد منه لاحقًا للتحقق من الـSecret الذي سيرسله XenForo.

لا تغلق Make الآن، لأننا سنعود إليه بعد ضبط XenForo.​

إنشاء Webhook داخل XenForo​

انتقل الآن إلى لوحة تحكم XenForo، ومن القائمة توجه إلى: Setup → Webhooks ثم اختر: Add webhook ستظهر صفحة إعداد الـWebhook، وهنا سنحدد إلى أين سيتم إرسال البيانات وما الحدث الذي سيؤدي إلى إرسالها. في حقل Title يمكنك وضع اسم مثل: Send new threads to Make أما في Target URL فضع عنوان الـWebhook الذي نسخته قبل قليل من Make.

يوجد أيضًا حقل Secret. هذا الحقل ليس ضروريًا لعمل الربط من حيث المبدأ، لكن من الأفضل استخدامه لأنه يوفر وسيلة إضافية للتحقق من أن الطلب الذي وصل إلى Make قادم فعلًا من الـWebhook الذي أنشأناه داخل XenForo.

ضع قيمة طويلة يصعب تخمينها، مثل سلسلة عشوائية من الأحرف والأرقام، واحتفظ بها لأننا سنستخدمها لاحقًا.​
إنشاء Webhook داخل XenForo

اختيار الحدث الذي سيرسل XenForo عنده البيانات​

هذه هي أهم خطوة في الإعداد. XenForo يستطيع إطلاق Webhooks عند أنواع متعددة من الأحداث، لكن هدفنا هنا هو معرفة متى تم إنشاء موضوع جديد فقط، وليس عند كل رد أو تعديل يحدث في المنتدى.

ابحث في قائمة أنواع المحتوى عن Threads، ثم اختر الحدث الخاص بإنشاء موضوع جديد: thread_insert بهذا لن يتم تشغيل السيناريو عند تعديل موضوع قديم أو إضافة رد جديد، وإنما عند إنشاء Thread جديد.
اختيار الحدث الذي سيرسل XenForo عنده البيانات

يمكننا أيضًا تحديد الأقسام التي نريد إرسال مواضيعها إلى Discord. فإذا كان المنتدى يحتوي على عشرات الأقسام، فلا داعي مثلًا لإرسال كل شيء. يمكن اختيار قسم واحد، مثل قسم الإعلانات، أو مجموعة محددة من الأقسام بحسب طبيعة المنتدى.

هذه النقطة مفيدة جدًا؛ فمن الممكن مثلًا تخصيص قناة Discord للأخبار وجعلها تستقبل فقط المواضيع المنشورة في قسم الأخبار داخل XenForo.

في الجزء الأخير من إعداد Webhook ستجد إعداد طريقة ترميز البيانات. اتركها على: application/json وهو الخيار المناسب في حالتنا. ويفضل كذلك إبقاء SSL verification مفعّلًا. لا توجد حاجة لتعطيله ما دام عنوان Make يعمل بصورة طبيعية عبر HTTPS.

تأكد أخيرًا من أن الـWebhook في حالة Active، ثم احفظ الإعدادات. أصبح XenForo الآن جاهزًا لإرسال بيانات الموضوع إلى Make.​

إرسال أول موضوع تجريبي إلى Make​

نحتاج في هذه المرحلة إلى إرسال بيانات حقيقية حتى يتعرف Make على بنية البيانات التي يرسلها XenForo. ارجع إلى Scenario الذي أنشأناه داخل Make واجعل الـWebhook مستعدًا لاستقبال طلب تجريبي، أو استخدم Run once إذا كان ظاهرًا في واجهتك.
 استخدم Run once

بعد ذلك افتح المنتدى وأنشئ موضوعًا تجريبيًا في أحد الأقسام التي حددناها داخل إعداد Webhook. يمكن أن يكون العنوان مثلًا: تجربة ربط XenForo مع Discord ثم انشر الموضوع.

إذا كان كل شيء مضبوطًا بصورة صحيحة، سيستقبل Make الطلب القادم من XenForo وستظهر البيانات داخل Module الخاص بالـWebhook.
ربط XenForo مع Discord عبر Make وWebhooks بدون إضافات

وهنا ستلاحظ لماذا تعتبر Webhooks في XenForo أكثر قوة من مجرد إرسال إشعار بسيط. فالطلب يحتوي على مجموعة كبيرة من البيانات المرتبطة بالموضوع.

من بين البيانات التي سنحتاجها: data.title وهو عنوان الموضوع. data.username وهو اسم العضو الذي نشره. data.view_url وهو الرابط المباشر للموضوع. ويمكن أيضًا الحصول على معلومات إضافية مثل القسم ومحتوى أول مشاركة وبيانات المستخدم.​

إضافة Discord إلى السيناريو​

بعد أن أصبح Make يستقبل بيانات XenForo، سنحدد ما الذي نريد فعله بها. اضغط على علامة الإضافة بعد Module الخاص بالـWebhook، وابحث عن: Discord ثم اختر: Send a Message.
إضافة Discord إلى السيناريو

سيطلب منك Make إنشاء Connection مع Discord. سجل الدخول واسمح له بالاتصال بالسيرفر المطلوب، ثم حدد السيرفر والقناة التي تريد إرسال المواضيع إليها.

يمكن مثلًا إنشاء قناة باسم: #forum-updates بحيث تصبح مخصصة لتنبيهات المنتدى.
ربط XenForo مع Discord عبر Make وWebhooks بدون إضافات

بعد تحديد القناة نصل إلى الجزء المهم: Message. بدل كتابة رسالة ثابتة، سنستخدم البيانات القادمة من XenForo.

يمكن أن تكون الرسالة بهذا الشكل: عنوان الموضوع - اسم المستخدم - رابط الموضوع

لكن لا تكتب أسماء الحقول يدويًا داخل الرسالة. استخدم أداة Mapping الموجودة في Make وحدد البيانات القادمة من Module الأول.
ربط XenForo مع Discord عبر Make وWebhooks بدون إضافات

تشغيل Scenario بصورة تلقائية​

بعد التأكد من نجاح التجربة، احفظ Scenario وفعّل تشغيله تلقائيًا عند وصول البيانات. في Make تكون Webhooks عادةً Instant Triggers، أي أن وصول الطلب يمكن أن يؤدي إلى تشغيل السيناريو مباشرة بدل انتظار فحص دوري.

الآن أصبح المسار كاملًا: XenForo → Make Webhook → Filter → Discord ولا نحتاج بعد ذلك إلى تشغيل Make يدويًا في كل مرة.
ربط XenForo مع Discord عبر Make وWebhooks بدون إضافات

تجربة ربط XenForo مع Discord​

حان وقت الاختبار النهائي. أنشئ موضوعًا جديدًا داخل القسم الذي حددناه في إعدادات XenForo. بعد نشره، انتقل إلى قناة Discord.

إذا تم الإعداد بصورة صحيحة، ستظهر خلال وقت قصير رسالة جديدة تحتوي على عنوان الموضوع والكاتب والقسم والرابط.
ربط XenForo مع Discord عبر Make وWebhooks بدون إضافات

وبهذا نكون قد نجحنا في ربط XenForo مع Discord باستخدام Make وWebhooks دون تركيب أية إضافة على المنتدى.​

لماذا نستخدم Make أصلًا؟​

قد يبدو أن هدفنا هو إرسال موضوع XenForo إلى Discord فقط، لكن Make هو الجزء الذي يجعل الفكرة قابلة للتوسع. XenForo يخبر Make أن حدثًا وقع ويرسل بياناته، بينما يستطيع Make اتخاذ إجراء واحد أو مجموعة من الإجراءات بناءً على تلك البيانات.

فمثلًا يمكن لاحقًا جعل الموضوع نفسه ينتقل إلى Discord وTelegram في الوقت نفسه، أو تخزين بيانات المواضيع في Google Sheets، أو إرسال تنبيه إلى فريق الإدارة عند إنشاء نوع معين من المحتوى.

ويمكن استخدام Filters لتحديد شروط أكثر تعقيدًا، مثل إرسال المواضيع التي تنتمي إلى قسم محدد فقط أو تنفيذ مسار مختلف اعتمادًا على نوع المحتوى.

لذلك فإن ربط XenForo مع Discord ليس سوى تطبيق بسيط لفكرة أكبر بكثير، وهي تحويل أحداث المنتدى إلى عمليات آلية تتواصل مع خدمات خارجية.​

مشاكل قد تواجهك أثناء الربط​

إذا نشرت موضوعًا ولم يصل شيء إلى Make، فتأكد أولًا من أن Webhook مفعّل داخل XenForo، وأن Target URL صحيح، وأنك تنشر الموضوع داخل القسم الذي سمحت له بتشغيل الحدث.

وتأكد كذلك من اختيار thread_insert إذا كان المطلوب إرسال المواضيع الجديدة فقط.

إذا وصلت البيانات إلى Make ولكن لم تصل الرسالة إلى Discord، فغالبًا أصبحت المشكلة في الجزء الثاني من السيناريو. افتح سجل التنفيذ في Make وتأكد من أن اتصال Discord يعمل وأن Make يمتلك الصلاحية اللازمة لإرسال الرسائل إلى القناة المختارة.

أما إذا وصلت مواضيع من أقسام لا تريدها، فمن الأفضل ضبط فلترة الأقسام من XenForo نفسه أو إضافة Filter إضافي داخل Make.

ومن الأفضل في البداية عدم إرسال نص المشاركة بالكامل إلى Discord. بيانات أول مشاركة متاحة ضمن Webhook، لكن النص قد يحتوي على BBCode أو روابط أو محتوى من إنشاء المستخدم، لذلك يكفي في أغلب الحالات إرسال العنوان والكاتب والقسم والرابط.​

ماذا يمكن أن نفعل بعد ذلك؟​

بعد فهم آلية Webhooks، لن يبقى XenForo نظامًا معزولًا عن بقية خدمات موقعك.

يمكننا على سبيل المثال إنشاء سيناريو يرسل موضوعًا جديدًا إلى Telegram، أو إرسال بلاغات المنتدى إلى قناة خاصة بالمشرفين، أو تسجيل عمليات معينة في Google Sheets، أو ربط المنتدى بنظام CRM أو خدمة بريدية.

بل يمكن إنشاء تدفقات أكثر تقدمًا يكون فيها XenForo مجرد نقطة البداية، ثم تقوم Make بمعالجة البيانات واتخاذ قرار بشأن الخدمة التي يجب إرسالها إليها.

وهذه إحدى أهم ميزات Webhooks التي أضافها XenForo؛ فبدل البحث عن إضافة مستقلة لكل عملية تكامل، يمكن جعل المنتدى يرسل الحدث إلى منصة Automation ثم بناء سير العمل الذي يناسب احتياجات الموقع.​
 
عودة
أعلى