مسار N8n 102 - خطأ في الموضوع: القسم 2 - معالج Order Webhook

يبدو أن المسار n8n102 مصمم لإرهاق المتعلمين، أولاً لأنه يحتوي على خطأ في القسم 1 في SendToPriorityQueue الذي لم يتم حله بعد، والآن جزء Webhook لا يمكن متابعته لأن صفحة الاختبار تتطلب https بينما يستخدم البرنامج التعليمي http، لذا застрял مجدداً بشكل كبير في بداية التمرين العملي. إليك لقطة الشاشة الخاصة بخطأ json/workflow:

{
“nodes”: [
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “course/n8n102/new-order”,
“authentication”: “headerAuth”,
“responseMode”: “responseNode”,
“options”: {
“allowedOrigins”: “*”
}
},
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 2.1,
“position”: [
0,
0
],
“id”: “5b647ab0-18c4-41a4-bb01-62fddb40e0d7”,
“name”: “WebhookNewOrder”,
“webhookId”: “cb64f5fc-8c9c-4d7d-abb7-7f3ca5eb7305”,
“credentials”: {
“httpHeaderAuth”: {
“id”: “vMHAPkPKaravjcEZ”,
“name”: “n8n Academy API Key”
}
}
},
{
“parameters”: {
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 3
},
“conditions”: [
{
“id”: “dd887f0b-a710-4f6d-ae7b-4135da5667a8”,
“leftValue”: “={{ $json.body.order_id }}”,
“rightValue”: “”,
“operator”: {
“type”: “string”,
“operation”: “notEmpty”,
“singleValue”: true
}
},
{
“id”: “a7140c1e-23cc-4dba-9662-0059886cdb53”,
“leftValue”: “={{ $json.body.customer_id }}”,
“rightValue”: “”,
“operator”: {
“type”: “string”,
“operation”: “notEmpty”,
“singleValue”: true
}
},
{
“id”: “438dee60-5bcf-4002-927e-280813e11b18”,
“leftValue”: “={{ $json.body.total }}”,
“rightValue”: “”,
“operator”: {
“type”: “number”,
“operation”: “notEmpty”,
“singleValue”: true
}
}
],
“combinator”: “and”
},
“options”: {}
},
“type”: “n8n-nodes-base.if”,
“typeVersion”: 2.3,
“position”: [
208,
0
],
“id”: “9fb45b77-fe7c-4240-848b-deadf5cf8bc7”,
“name”: “ValidateRequiredFields”
},
{
“parameters”: {
“respondWith”: “json”,
“responseBody”: “={\n "status": "accepted",\n "order_id": "{{ $(‘WebhookNewOrder’).item.json.body.order_id }}",\n "message": "تم استقبال الطلب وتم وضعه في قائمة الانتظار للمعالجة"\n}”,
“options”: {
“responseCode”: 200
}
},
“type”: “n8n-nodes-base.respondToWebhook”,
“typeVersion”: 1.5,
“position”: [
416,
-96
],
“id”: “b945dafb-6e2f-461a-8534-414b735b7ab8”,
“name”: “RespondSuccess”
},
{
“parameters”: {
“respondWith”: “json”,
“responseBody”: “={\n "status": "error",\n "message": "حقول مفقودة: order_id و customer_id و total مطلوبة"\n}”,
“options”: {
“responseCode”: 400
}
},
“type”: “n8n-nodes-base.respondToWebhook”,
“typeVersion”: 1.5,
“position”: [
416,
96
],
“id”: “b23fadc8-b731-444d-bc84-10cb1f7d9f38”,
“name”: “RespondValidationError”
}
],
“connections”: {
“WebhookNewOrder”: {
“main”: [
[
{
“node”: “ValidateRequiredFields”,
“type”: “main”,
“index”: 0
}
]
]
},
“ValidateRequiredFields”: {
“main”: [
[
{
“node”: “RespondSuccess”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “RespondValidationError”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“pinData”: {},
“meta”: {
“templateCredsSetupCompleted”: true,
“instanceId”: “1b202188b62737e64678f469a8e86b98e8d2c2147255e95f1e4af4dc019b5e9d”
}
}

@Usman_Waheed، يمكنك استخدام ngrok.
لا تنسَ تحديث عنوان URL الخاص بـ webhook بعد ذلك

ما هو ngrok؟

يوفر ngrok لتثبيت n8n الخاص بك نطاقاً فرعياً https عام

شكراً، لكن سيكون هناك الكثير من التعلم الإضافي الذي يتطلب الوقت. ألا توجد أي طريقة لإصلاح رابط أو درس N8N Academy؟

@Usman_Waheed إذا شعرت أن ngrok معقد جداً، جرّب localtunnel - أمر واحد فقط، بدون حساب:

npx localtunnel --port 5678

يعطيك عنوان HTTPS عام فوراً. الصقه كـ webhook base في n8n وتمرين الدورة سيعمل. اترك نافذة الطرفية مفتوحة أثناء عملك على التمرين، أغلقها عندما تنتهي.

أنا تماماً محرج في: الصقه كقاعدة webhook الخاصة بك في n8n وستعمل تمرين المسار.
من أمر npx الخاص بي حصلت على عنوان URL (والطرفية مفتوحة): https://blue-deer-press.loca.lt

إذاً أين بالضبط أضع هذا عنوان URL، لا أرى أي حقل “Base URL”، في أي مكان في عقدة webhook أو في أي مكان في التمرين، أم يجب أن أضع هذا عنوان URL في مربع نص صفحة الاختبار (Webhook Tester - n8n Academy | N8N102)

???

مرحبا @Usman_Waheed، للإجابة على سؤالك الأخير مباشرة، أنت لا تلصق عنوان URL للـ localtunnel في عقدة webhook نفسها.

إليك بالضبط ما يجب فعله:

الخطوة 1: في n8n، اذهب إلى Settings → General وابحث عن حقل “Webhook URL” أو “n8n URL”. استبدل أي شيء موجود هناك برابط localtunnel الخاص بك: https://blue-deer-press.loca.lt

الخطوة 2: احفظ، ثم عد إلى عقدة WebhookNewOrder وانقر على “Copy Webhook URL” - يجب أن يظهر الآن عنوان URL للـ localtunnel بدلاً من localhost.

الخطوة 3: الصق عنوان URL للـ webhook المنسوخ في صفحة اختبار الدورة على learn.app.n8n.cloud/webhook/course/n8n102/webhook-tester كعنوان URL للهدف.

الخطوة 4: تأكد من أن سير العمل في وضع “Listen for test event” - انقر على عقدة التفعيل واضغط هذا الزر قبل النقر على “Send” في صفحة الاختبار.

تنبيه واحد بخصوص localtunnel: في بعض الأحيان يعرض صفحة تحذير المتصفح عند الزيارة الأولى. إذا لم تكن الطلبات تمر، افتح https://blue-deer-press.loca.lt في متصفحك أولاً وقبل الموجه، ثم أعد محاولة الاختبار.

لا توجد مثل هذه الإعدادات في أي مكان، لقد نقرت على جميعها في هذه اللقطة الشاشية لكن لا يوجد أي مكان يقول إعدادات Webhook URL، وليس هناك إعدادات “عام” أيضاً. انظر إلى لقطة الشاشية هذه

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

كيف قمت بحلها باستخدام ngrok؟

أرسل Gemini هذه الخطوات، واتبعتها، وحلّت المشكلة:
للحصول على رابط https:// وتخطي وحدة الأكاديمية هذه، تحتاج إلى استخدام خدمة نفق تابعة لطرف ثالث مجانية. المعيار الصناعي (وما توصي به n8n الآن رسميًا للتطوير المحلي) هو ngrok.

إليك أسرع طريقة لتجاوز هذه العقبة:

الخطوة 1: إبقاء n8n قيد التشغيل

اترك نافذة سطر الأوامر الحالية مفتوحة. مثيل n8n الخاص بك يعمل بشكل مثالي على http://localhost:5678، وعلينا أن نبقيه مستيقظًا لاستقبال البيانات.

الخطوة 2: إعداد ngrok

سننشئ جسرًا آمنًا مؤقتًا من الإنترنت العام مباشرة إلى منفذك المحلي 5678.

  1. توجه إلى ngrok.com وأنشئ حسابًا مجانيًا.

  2. حمّل إصدار Windows واستخرج ملف .exe.

  3. افتح نافذة سطر أوامر جديدة في المجلد حيث استخرجت ngrok.

  4. صل حسابك بلصق أمر المصادقة المعروض على لوحة التحكم الخاصة بك في ngrok (يبدو هكذا): ngrok config add-authtoken YOUR_AUTHTOKEN_HERE

  5. ابدأ النفق الموجه إلى منفذ n8n: ngrok http 5678

الخطوة 3: بناء عنوان URL للـ Webhook الجديد

عند تشغيل هذا الأمر، ستعرض ngrok شاشة بـ رابط التحويل (Forwarding URL) يبدو شيئًا مثل https://1234-abcd.ngrok-free.app.

أنت لا تحتاج إلى واجهة n8n لعرض هذا الرابط فعليًا حتى يعمل الاختبار. تحتاج فقط إلى دمج مجال ngrok الآمن الجديد مع مسار الـ webhook المحدد.

  • مجالك في ngrok: https://1234-abcd.ngrok-free.app (استبدل هذا برابط ngrok الفعلي الخاص بك)

  • مسار webhook الخاص بك: /webhook/course/n8n102/new-order

  • عنوان URL النهائي للإنتاج: https://1234-abcd.ngrok-free.app/webhook/course/n8n102/new-order

الخطوة 4: تخطي تقييم الأكاديمية

  1. عد إلى أداة اختبار Webhook في n8n Academy.

  2. الصق عنوان URL للإنتاج النهائي الذي أنشأته للتو (الذي يبدأ بـ https://) في حقل “عنوان URL للـ Webhook الخاص بك”.

  3. تأكد من ضبط عقدة Webhook في n8n على الاستماع لحدث الاختبار.

  4. انقر على تشغيل اختبارات الخطوة 1 على صفحة الأكاديمية.

ستتحقق أداة اختبار الأكاديمية بنجاح من رابط HTTPS وترسل الحمل عبر ngrok، وستسلمه ngrok مباشرة إلى سير عمل n8n المحلي الخاص بك!

ملاحظة: إذا كنت تريد فعلاً أن تعرض n8n عنوان URL الجديد هذا داخل واجهة مستخدم عقدة Webhook، فستضطر إلى إيقاف n8n وإعادة تشغيله مع تمرير متغير بيئي (على سبيل المثال، set WEBHOOK_URL=https://your-ngrok-url.app && npx n8n start). ومع ذلك، من أجل تخطي اختبار الأكاديمية هذا، يعد لصق رابط ngrok المدمج يدويًا في الأداة أسرع بكثير وينجز الشيء ذاته تمامًا.