webhook لا يتم ربطه

صف المشكلة/الخطأ/السؤال

<

يرجى مشاركة سير العمل الخاص بك

(حدد العُقد على لوحتك واستخدم اختصارات لوحة المفاتيح CMD+C/CTRL+C و CMD+V/CTRL+V لنسخ ولصق سير العمل.)

شارك الإخراج الذي يُرجعه آخر عقدة

معلومات إعداد n8n الخاص بك

  • إصدار n8n:
  • قاعدة البيانات (الافتراضي: SQLite):
  • إعداد n8n EXECUTIONS_PROCESS (الافتراضي: own, main):
  • تشغيل n8n عبر (Docker, npm, n8n cloud, desktop app):
  • نظام التشغيل:

حسناً، لم تقدم الكثير من المعلومات هنا، لكن السبب الأكثر شيوعاً لهذا الخطأ بالذات هو صيغة ردك — Meta تحتاج إلى hub.challenge يُرسل كنص عادي، وليس JSON. لذا تحقق من عقدة Respond to Webhook وتأكد من أن “Respond With” معين على Text وليس JSON، مع كون النص فقط {{$json.query["hub.challenge"]}} وبدون أي شيء يغلفه. إذا كان معيناً على JSON فقط فهذا سيسبب هذا الخطأ.

بخلاف ذلك: تأكد من أن سير العمل نشط وأنه يستخدم عنوان URL الإنتاج (وليس عنوان الاختبار، لأن Meta لن تستمع لك لتضغط على “test event”). تأكد من أنه معين لقبول GET. تأكد من أن الرمز يطابق تماماً، بدون مسافات غريبة أو أحرف خاصة. وتحقق من سجل التنفيذ للتأكد من أن عقدك تصبح خضراء فعلاً عندما تحاول Meta التحقق.

لكن إذا كنت قد تأكدت من كل ذلك بالفعل، فأخبرني ما الذي “Respond With” معين عليه حالياً وما يبدو عليه تعبير Response Body، وربما أتمكن من اكتشافه من هناك.

dSavage غطّى المشبوهين الرئيسيين بشكل جيد. إضافة صغيرة واحدة: بعد إصلاحك لصيغة Respond With وإعادة الاختبار، راقب علامة التبويب Executions في الوقت الفعلي (صفّ على “All” وليس فقط “Latest”) بينما تعمل تحقق Meta — من السهل تفويت التنفيذ إذا كان يعمل وينتهي على الفور قبل أن تحدّث. إذا كنت لا تزال لا ترى أي شيء يظهر هناك على الإطلاق، تحقق مرة أخرى من أن عنوان URL لسير العمل الذي سجّلته في Meta يطابق عنوان webhook الإنتاج بالضبط، بما في ذلك الشرطات المائلة العكسية أو عدم وجودها.

شكراً على ردك، سأتحقق من اقتراحاتك
مع التقديرم
ستانلي

مرحبا @Stanley_Wilson،

عادة ما يحدث هذا الخطأ عندما تحاول Meta إرسال تحدي التحقق GET إلى webhook n8n الخاص بك، لكن n8n لا يستجيب برمز hub.challenge المتوقع أثناء المصافحة.

إليك بعض الأشياء السريعة للتحقق منها:

  1. حالة سير العمل ونوع URL:
  • إذا كنت تستخدم عنوان URL لـ Production Webhook، فتأكد من تفعيل سير العمل من الأعلى اليمين قبل النقر على “Verify and Save” في Meta.
  • إذا كنت تختبر باستخدام عنوان URL لـ Test Webhook، فانقر على “Listen for Test Event” في n8n أولاً، ثم انقر على “Verify and Save” في Meta على الفور ضمن نافذة انتظار المهلة الزمنية.
  1. التحقق من مطابقة الرمز:
    تحقق مرة أخرى من أن سلسلة “Verify Token” في لوحة معلومات Meta تطابق بنسبة 100% (حرفاً بحرف، مع مراعاة حالة الأحرف) مع الرمز المكون داخل عقدة Trigger/Webhook في n8n الخاصة بك.

  2. إعداد عقدة Trigger:
    إذا كنت تستخدم عقدة Webhook قياسية (بدلاً من عقدة WhatsApp/Meta Trigger الرسمية)، فتأكد من تعيين العقدة للتعامل مع طلبات GET لخطوة التحقق وإرجاع {{ $json.query['hub.challenge'] }} كنص.

إذا كنت قد تحققت بالفعل من هذه الأمور وكانت تفشل بشكل مستمر، فلا تتردد في إرسال لقطة شاشة من إعداد عقدة trigger في n8n أو إرسال رسالة خاصة لي — يمكنني مساعدتك في استكشاف تدفق البيانات مباشرة!

تأكد من أن سير العمل نشط وأن المتصل يستخدم عنوان URL للإنتاج بدلاً من عنوان URL الاختبار المؤقت. إذا كان n8n خلف وكيل، تحقق من WEBHOOK_URL ورؤوس المضيف المُعاد توجيهه والبروتوكول لأن عنوان URL الأساسي العام غير الصحيح قد يسجل نقطة النهاية الخاطئة.