فشل التحقق من عنوان URL لموقع الويب الخاص بـ WhatsApp في n8n Cloud

أحاول إعداد روبوت محادثة ذكي على WhatsApp باستخدام عقد WhatsApp Trigger و Send Message. لقد قمت بتكوين معرّف حساب WhatsApp Business وClient ID و Client Secret و Access Token بنجاح. ومع ذلك، عندما أحاول حفظ Webhook Callback URL (عناوين URL الإنتاج والاختبار باستخدام POST/GET) في Meta Developer Console، ترفض Meta التحقق منها وتقول إنها لم يتم التحقق منها. نظراً لأن Webhook لا يتحقق، فإن الرسائل الواردة لا تؤدي إلى تفعيل سير العمل في n8n الخاص بي. يمكنني فقط إرسال الرسائل يدويًا باستخدام زر اختبار “Send Message” الموجود داخل لوحة تحكم Meta Business Suite.

إصدار n8n: 2.29.5 -

تشغيل n8n عبر: n8n Cloud (نسخة تجريبية مجانية لمدة 14 يومًا) -

بيئة الاستضافة: n8n Cloud Official Hosting

الخطوات المتخذة حتى الآن

  1. تكوين جميع بيانات اعتماد API داخل عقد WhatsApp.

  2. محاولة لصق عناوين URL الخاص بـ Webhook للإنتاج والاختبار في تكوين Meta.

  3. إضافة رقم هاتفي الاختبار إلى قائمة المسموحين في لوحة تطوير Meta.

كيف يمكنني جعل Meta تتحقق بنجاح من Webhook Callback URL الخاص بي على n8n حتى تؤدي الرسائل الواردة إلى تفعيل سير العمل الخاص بي؟

قبل النقر على Verify، انشر workflow إذا كنت تستخدم عنوان URL الإنتاجي أو استخدم عنوان URL الاختبار، اجعله يستمع، وانقر على Verify
بأي حال من الأحوال، ستحتاج إلى عقدة respond لإرجاع الرمز إلى Meta بعد الاستماع، لذلك لن تعمل المرة الأولى؛ ستحصل فقط على الرمز في datastream ثم تقوم بتكوين عقدة respond to webhook لديك باستخدام ذلك.

لا تستخدم Test URL للإعدادات الدائمة في Meta، فهي تعمل فقط أثناء الاستماع النشط. استخدم Production URL بمجرد نشر سير العمل وتفعيله.

الصورة توضح أنك تستخدم Production URL لكن سير العمل قد لا يكون مفعلاً بعد، وهذا هو السبب الأرجح للمشكلة.

مرحباً @Harsh_Deswal أهلاً وسهلاً!
لا يسمح WhatsApp إلا بـ webhook واحد فقط لكل تطبيق، لذلك في كل مرة تلصق فيها عنوان URL الاختبار ثم عنوان URL الإنتاج، الأحدث منهما يستبدل التسجيل السابق. تحقق Meta يعمل فقط مقابل عنوان URL الواحد المسجل حالياً والذي يمكن الوصول إليه، لذلك التبديل بين الاثنين هو ما يبقيه غير معتمد. سجل عنوان URL واحد فقط ولا تتبادل بينهما أثناء عملية التحقق.

@Stanleyy لقد تصرف بحكمة هنا، عنوان URL الاختبار لن يتم حله مطلقًا إلا إذا كان يستمع بنشاط. استخدم عنوان الإنتاج.

وفعّل سير العمل الخاص بك

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

فهمت @Harsh_Deswal

أنت لا تلصق رابط Callback في Meta وتضغط على Verify بنفسك مع عقدة WhatsApp Trigger، فـ n8n يسجل webhook ويجيب على handshake التحقق من Meta بنفسه. القيام بذلك يدويًا هو ما يعود دائمًا كغير معتمد. السبب في أن الإرسال يعمل لكن الـ trigger لا يعمل هو نوع بيانات الاعتماد: “Send Message” يعمل على بيانات اعتماد مفتاح API (Access Token + Business Account ID)، بينما يحتاج الـ trigger إلى بيانات اعتماد OAuth2 (Client ID هو App ID الخاص بك، Client Secret هو App Secret الخاص بك) لإجراء هذا التحقق. افتح عقدة WhatsApp Trigger، اضبطها على بيانات اعتماد OAuth2 المبنية من App ID و App Secret الخاص بك، ودع n8n يقوم بـ handshake مع Meta بدلاً من التحقق اليدوي.

أنا مبتدئ، Meta Registers يسجل رسالة Hii التي أرسلها إلى رقم الاختبار لكنه لا يرسلها إلى n8n حتى يتمكن n8n من الرد.

أعتقد أن @Harsh_Deswal رقم الاختبار هو المشكلة هنا، غالباً لن يدفع الرسائل الواردة إلى المشغل حتى تفتح نافذة المراسلة من جانبك. أرسل رسالة WhatsApp من رقمك الشخصي إلى رقم الاختبار أولاً، ثم دع n8n يرد، وستبدأ Meta في إعادة توجيه الرسائل الواردة إلى سير العمل الخاص بك. إذا لم تصل الرسالة إلى رقم الاختبار في وضع الحماية، أضف وتحقق من رقم هاتف عملك الخاص، فرقم الاختبار المؤقت غير موثوق به لتسليم الرسائل الواردة.
انظر إلى هذا:

نفس المشكلة التي واجهتها قبل بضعة أسابيع، لذا أفهم الإحباط هنا.
الشيء الأساسي الذي يحدث فعلاً: عندما تلصق عنوان URL للاستدعاء في Meta بنفسك وتضغط على التحقق، فأنت تجري المصافحة يدوياً. لكن عقدة WhatsApp Trigger في n8n من المفترض أن تتعامل مع هذا التحقق بمفردها، فهي تسجل webhook وترد على تحدي Meta تلقائياً. لذا فإن محاولة التحقق اليدوية تحارب بشكل أساسي ما يحاول n8n القيام به خلف الكواليس.
الشيء الأكبر الذي يجب التحقق منه هو بيانات اعتمادك. “Send Message” يعمل لأنه يحتاج فقط إلى بيانات اعتماد نوع مفتاح API، Access Token بالإضافة إلى Business Account ID. لكن عقدة Trigger تحتاج إلى بيانات اعتماد OAuth2 مبنية من App ID الخاص بك (وهو Client ID الخاص بك) و App Secret (Client Secret). إذا كانت عقدة Trigger لا تزال على نوع بيانات اعتماد خاطئ، فهذا على الأرجح السبب في فشل المصافحة بشكل مستمر حتى عندما يعمل إرسال الرسائل بشكل جيد.
من المفيد أيضاً التحقق المزدوج، يمكن تسجيل عنوان URL webhook واحد فقط لكل تطبيق في المرة الواحدة. إذا كنت تتبدل بين عناوين URL الاختبار والإنتاج أثناء محاولة التحقق، فإن آخر عنوان تم لصقه يستبدل التسجيل السابق، لذا يؤدي التنقل بينهما إلى إعادة تعيين الحالة باستمرار. اختر عنوان URL واحد، وتأكد من نشر سير العمل وتفعيله إذا كان عنوان URL الإنتاج، ولا تلمسه أثناء التحقق.
بمجرد إصلاح نوع بيانات الاعتماد وتسجيل عنوان URL واحد فقط، حاول خطوة التحقق مرة أخرى. عادة ما يكون هذا الجمع هو ما يصلحه.