عقدتي "عند استقبال رسالة دردشة" لا تعمل

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

مرحبا.
أنا أملك N8N مستضافة على حساب Hostinger.
عندما أحاول تنفيذ عقدة “When chat message received”، لا تفعل شيئاً على الإطلاق. لا توجد رسائل خطأ، لا توجد علامة خضراء تظهر أنها حاولت… لا شيء على الإطلاق. حاولت فتح رابط الدردشة في المتصفح، وهو يفتح فعلاً، لكن لا توجد ردود هناك أيضاً. قمت بإنشاء API على Hostinger وقمت بإعداده على N8N، لكن ذلك لم يحل المشكلة.
الشيء هو أنني أملك حساب N8N آخر، خارج Hostinger، ويعمل بشكل جيد هناك، على الرغم من أن هذه النسخة قديمة جداً.
حاولت البحث عن حلول عبر الإنترنت، لكنني لم أجد أحداً يتحدث عن هذه المشكلة بالتحديد. هل مر أحد آخر بهذه التجربة؟

ما رسالة الخطأ (إن وجدت)؟

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

هذا هو الذي لا يعمل (تم إنشاؤه من الذي يعمل):

هذا هو الذي يعمل.

شارك المخرجات التي تم إرجاعها بواسطة العقدة الأخيرة

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

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

@Caike_Oliveira السجلات لا تظهر أي تنفيذ، لذا رسالة الدردشة في الواقع لا تصل إلى n8n لتفعيل المشغل، المشكلة ليست في سير العمل. على صندوق ذاتي الاستضافة مثل Hostinger غالباً ما تكون المشكلة أن WEBHOOK_URL لا يطابق عنوان URL العام الفعلي، لذا طلب الدردشة لا يمكنه العودة. هل تم تعيين WEBHOOK_URL، وإلى ماذا، إلى نطاق Hostinger الفعلي أم شيء مثل localhost؟

بناءً على ما قاله @achamm، عادةً ما يتم تعيين هذا على Hostinger من خلال لوحة متغيرات البيئة في تطبيق n8n وليس عبر SSH، ضمن قسم الإعدادات/الإعدادات الخاص بمثيل n8n الخاص بك. تحقق من قيمة WEBHOOK_URL المعينة هناك؛ يجب أن تطابق بالضبط عنوان URL الذي تصل إلى n8n من خلاله (بما في ذلك https://).

شيء واحد يجب التحقق منه بغض النظر عن ذلك: هل تم حفظ سير العمل هذا بالفعل وتفعيله (مفتاح في الزاوية العلوية اليمنى في المحرر)؟ عنوان URL الإنتاج الخاص بـ Chat Trigger يرد فقط عندما يكون سير العمل نشطاً، إذا كنت تفتح عنوان URL الدردشة فقط بينما سير العمل في حالة المسودة/غير النشط، فستحصل على بالضبط هذا العرض (يتم تحميل الصفحة، لكن الرسائل لا تذهب إلى أي مكان، لا يتم تسجيل أي تنفيذ).

إذا كان نشطاً وكان WEBHOOK_URL يبدو صحيحاً، فجرب زر “فتح الدردشة” مباشرةً من داخل العقدة بدلاً من عنوان URL المنسوخ يدويًا، فإن إعدادات Hostinger تحتاج أحياناً إلى وكيل عبر بادئة مسار يأخذها معاينة العقدة في الاعتبار تلقائياً ولكن عنوان URL المكتوب يدويًا لن يأخذها في الاعتبار.

مرحباً.

شكراً على الردود، لكن اتضح أنه لا علاقة لها بـ webhook.

كان “n8n_encryption_key” فارغاً. اضطررت إلى إدراجه يدويًا داخل طرفية Hostinger. لا أعرف لماذا تم إنشاؤه فارغاً. كل ما أعرفه هو أنه بمجرد أن فعلت ذلك، بدأت عقدي في الاستجابة. الآن يمكنني المتابعة إلى الخطوة التالية.

مرة أخرى، شكراً على الردود. معرفة مكان التحقق من webhooks هو ما قادني في النهاية إلى “encryption_key”.

@Caike_Oliveira اكتشاف ممتاز، وهذا يشرح الفشل الصامت تماماً. مفتاح N8N_ENCRYPTION_KEY فارغ يعني أن n8n لا يستطيع فك تشفير بيانات اعتمادك المحفوظة، لذا عُقد credential-backed فقط تفشل بدون أي رسالة خطأ على الإطلاق، بالضبط ما كنت تشاهده.

من المهم تثبيت هذا الآن بعد أن نجح: احتفظ بهذا المفتاح بالضبط دائماً وقم بعمل نسخة احتياطية له في مكان ما. إذا تغير أو تم إعادة تعيينه إلى فارغ مرة أخرى، فكل بيانات الاعتماد التي قمت بحفظها بالفعل ستصبح غير قابلة لفك التشفير وستضطر إلى إدخالها جميعاً مرة أخرى. لذا تأكد من تثبيتها في إعدادات env الخاصة بـ Hostinger بدلاً من تركها لإعادة التوليد عند إعادة النشر.

لقد واجهت هذه المشكلة بالضبط مع Chat Trigger وأرهقتني لأن صفحة الدردشة تحمل بشكل جيد بينما لا يصل شيء إلى n8n على الإطلاق. المشغل يعمل فقط عندما يكون سير العمل نشطًا والدردشة تنشر إلى عنوان URL للويب هوك الإنتاج وليس الاختبار، لذلك إذا كنت على عنوان URL للاختبار فستحصل على علامة خضراء لكن لا شيء في كل مرة. على الخادم الذاتي خلف وكيل عكسي، تكون الأمور عادةً أسوأ: الوكيل يبتلع مسارات الويب هوك والدردشة، أو ينسف ترقية websocket، لذلك الرسالة لا تصل أبدًا. قم بتعيين WEBHOOK_URL إلى عنوان URL العام الحقيقي الخاص بك، وفعّل سير العمل، وتأكد من أن الوكيل يعيد توجيه مسارات الدردشة/الويب هوك واتصالات websocket. بمجرد محاذاة هذه العناصر بدأت الاستجابات تظهر لي على الفور.