الانتقال إلى المحتوى الرئيسي
مربع حوار New webhook يتضمن حقول الاسم وعنوان URL لنقطة النهاية وسر التوقيع، وقائمة الأحداث المراد إرسالها
يجعل الـ webhook الصادر Flowella يرسل طلب HTTP POST إلى نظامك الخاص في كل مرة يقع فيها حدث تختاره، مثل إرسال جهة اتصال رسالة WhatsApp. توضح لك هذه الصفحة كيفية إضافة نقاط نهاية webhook واختبارها وإدارتها داخل التطبيق. لمعرفة أنواع الأحداث ومحتويات الطلبات والترويسات وكيفية التحقق من التوقيعات، راجع مرجع webhooks.

قبل أن تبدأ

  • تحتاج إلى دور Owner أو Admin. يمكن لأصحاب الأدوار الأخرى رؤية Webhooks في القائمة، لكن القائمة لا تُحمَّل لهم. راجع الفريق والأدوار.
  • تحتاج إلى عنوان URL عام يقبل طلبات POST بمحتوى JSON ويرد بحالة 2xx خلال 10 ثوانٍ.
  • اختر سر توقيع لا يقل عن 8 أحرف واحفظه في مكان يمكن لمعالجك قراءته منه. يستخدمه Flowella لتوقيع كل طلب ولا يعرضه مرة أخرى بعد حفظه.

إضافة نقطة نهاية webhook

1

افتح Webhooks

انتقل إلى Settings، ثم اختر Webhooks ضمن مجموعة Developer. تُفتح شاشة Outbound webhooks.
2

ابدأ webhook جديدًا

اختر Add webhook. يُفتح مربع حوار New webhook.
3

سمِّ نقطة النهاية (اختياري)

في Name (optional)، أدخل ما يصل إلى 80 حرفًا، مثل CRM sync. يظهر الاسم فوق عنوان URL في القائمة.
4

أدخل عنوان URL لنقطة النهاية

في Endpoint URL، أدخل العنوان الكامل الذي يجب أن يرسل Flowella الأحداث إليه. يجب أن يستوفي قواعد عنوان URL.
5

أدخل سر التوقيع

في Signing secret، اكتب السر الذي اخترته، بطول يتراوح بين 8 و512 حرفًا. لا ينشئ Flowella سرًا نيابةً عنك.
6

اختر الأحداث

ضمن Events، حدّد كل حدث تريد تلقيه. يوضح مرجع webhooks متى ينطلق كل منها.
7

احفظ

اختر Create webhook. يظل الزر غير متاح إلى أن تدخل عنوان URL وسرًا لا يقل عن 8 أحرف وحدثًا واحدًا على الأقل. يظهر الـ webhook الجديد في القائمة بالحالة Active.

قواعد عنوان URL

يتحقق Flowella من عنوان URL عند حفظه ومرة أخرى قبل كل عملية تسليم. يجب أن يستوفي عنوان URL ما يلي:
  • أن يبدأ بـ https:// أو http://. يعمل http:// العادي، لكن الحمولة تنتقل حينها دون تشفير، لذا استخدم https:// في غير الاختبارات السريعة.
  • ألا يحتوي على اسم مستخدم أو كلمة مرور.
  • أن يشير إلى عنوان عام. يرفض Flowella localhost، وأسماء المضيفين المنتهية بـ .localhost أو .local، وmetadata.google.internal. كما يرفض أسماء المضيفين التي لا يمكن تحليلها. وتُرفض أيضًا العناوين الخاصة وعناوين الاسترجاع (loopback) وعناوين الارتباط المحلي (link-local) والعناوين غير المحددة، سواء أدخلتها مباشرة أو أشار إليها اسم مضيف. ومن الأمثلة على ذلك 10.0.0.5 و127.0.0.1 و169.254.169.254 و192.168.1.10 و::1.
  • ألا يتجاوز طوله 2,048 حرفًا.
يعرض عنوان URL الذي يخالف هذه القواعد الخطأ Webhook URL host is not allowed.

إرسال حدث تجريبي

استخدم حدثًا تجريبيًا للتحقق من أن نقطة النهاية تتلقى الطلبات وتقبلها قبل وصول الأحداث الحقيقية.
  1. في القائمة، اختر زر … في نهاية صف الـ webhook لفتح قائمة إجراءاته.
  2. اختر Send test event. يظهر تأكيد أسفل عنوان URL الخاص بالـ webhook.
  3. افتح Delivery log من القائمة نفسها. يعني ظهور صف webhook.test بقيمة Result تساوي OK أن نقطة النهاية ردّت بحالة 2xx.
يكون نوع الحدث التجريبي webhook.test وقيمة data هي { "test": true, "sentAt": "..." }. يرسله Flowella بغض النظر عن الأحداث التي حددتها، وحتى عندما يكون الـ webhook غير نشط. يعرض مرجع webhooks المحتوى الكامل.

سجل التسليم

اختر Delivery log في قائمة إجراءات الـ webhook لعرض آخر 50 محاولة تسليم، مرتبة من الأحدث. لا يعرض السجل داخل التطبيق محتويات الاستجابات ولا يحتوي على زر لإعادة التسليم. لقراءة أول 1,024 حرفًا من محتوى الاستجابة، أو لإعادة تسليم حدث، استخدم واجهة API لعمليات تسليم webhook.

المحاولات المتكررة والتراجع

ينجح التسليم عندما ترد نقطة النهاية بحالة 2xx خلال 10 ثوانٍ. وإن لم يحدث ذلك، يعيد Flowella المحاولة فورًا: 3 محاولات إجمالًا، بعد نحو ثانية واحدة من الإخفاق الأول ونحو ثانيتين بعد الإخفاق الثاني. بعد إخفاق المحاولة الثالثة، يُسقط Flowella ذلك الحدث ولا يعيد محاولته لاحقًا. يوضح المخطط الانسيابي ما يحدث لكل حدث ومتى يوقف Flowella الـ webhook. عندما يخفق 10 أحداث متتالية في جميع محاولاتها، يوقف Flowella الـ webhook وتتغير حالته إلى Inactive. يتلقى كل مالك في المؤسسة إشعارًا داخل التطبيق بعنوان “Outbound webhook disabled”، بغض النظر عن تفضيلات الإشعارات الخاصة به. تؤدي أي عملية تسليم ناجحة إلى إعادة تعيين العدد إلى صفر. عندما يكون الـ webhook غير نشط، لا يرسل Flowella إليه أي أحداث ولا يحتفظ بها لإرسالها لاحقًا. لاستدراك الأحداث التي فاتتك، اقرأ موجز الأحداث باستخدام GET /v1/events، الذي يحتفظ بالأحداث لمدة 7 أيام. راجع مرجع webhooks.

إدارة نقاط النهاية

تحتوي قائمة إجراءات كل صف على Edit وSend test event وDelivery log وDelete.

تعديل webhook

اختر Edit لفتح مربع حوار Edit webhook. يمكنك تغيير ما يلي:
  • Endpoint URL.
  • Events. يجب أن يظل حدث واحد على الأقل محددًا.
  • Webhook active. ألغِ تحديده لإيقاف عمليات التسليم مؤقتًا. لا تُرسل لاحقًا الأحداث التي تقع أثناء عدم نشاط الـ webhook.
  • New signing secret. اتركه فارغًا للاحتفاظ بالسر الحالي. يجب ألا يقل السر الجديد عن 8 أحرف، وإلا يحتفظ Flowella بالسر الحالي.
اختر Save لتطبيق التغييرات.
يحل السر الجديد المحفوظ في التطبيق محل السر القديم فورًا، لذا تتوقف الطلبات الموقعة بالسر القديم على الفور. لتغيير الأسرار دون إسقاط أحداث، قم بتدوير السر باستخدام واجهة API بدلًا من ذلك. لمدة 24 ساعة بعد التدوير، يحمل كل طلب أيضًا توقيعًا مُنشأً بالسر القديم في الترويسة X-Flowella-Signature-Previous. راجع تدوير سر التوقيع.
يعرض مربع حوار التعديل أيضًا Name (optional)، لكن الاسم المعدّل لا يُحفظ. لإعادة تسمية webhook، استخدم PATCH /v1/webhooks/{id} مع name.

إعادة تشغيل webhook

بعد أن يوقف Flowella الـ webhook، أصلح المشكلة في نقطة النهاية أولًا. ثم:
  1. اختر Edit، وحدّد Webhook active، ثم اختر Save.
  2. اختر Send test event وتحقق من أن Delivery log يعرض OK.
لا تتخطَّ الاختبار. فتشغيل الـ webhook داخل التطبيق يُبقي عدد إخفاقاته عند 10، لذا يكفي حدث واحد مخفق لإيقافه مجددًا. تؤدي عملية تسليم ناجحة، مثل حدث تجريبي ناجح، إلى إعادة تعيين العدد. أما استدعاء واجهة API ‏POST /v1/webhooks/{id}/reactivate فيشغّل الـ webhook ويعيد تعيين العدد في خطوة واحدة.

حذف webhook

اختر Delete، ثم أكّد Delete في مربع حوار Delete webhook?. يزيل Flowella نقطة النهاية وسجل تسليمها. لا يمكن التراجع عن هذا الإجراء.

استكشاف الأخطاء وإصلاحها

أدخل عنوان URL لنقطة النهاية، وسر توقيع لا يقل عن 8 أحرف، وحدّد حدثًا واحدًا على الأقل.
يخالف عنوان URL إحدى قواعد عنوان URL. تحقق من أن اسم المضيف يُحلَّل بشكل عام ولا يشير إلى عنوان خاص أو محلي. للاختبار على جهازك، اعرضه عبر نفق عام واستخدم عنوان النفق.
لا يمكن عرض webhooks وإدارتها إلا للمالكين والمسؤولين. اطلب من مالك أو مسؤول إعداد الـ webhook لك. لا يمكن تغيير الأدوار داخل التطبيق: راجع تغيير دور شخص ما.
تحقق من أن الـ webhook في حالة Active وأن الحدث محدد ضمن Events. تنطلق بعض الأحداث في حالات معينة فقط: على سبيل المثال، لا تنطلق أحداث جهات الاتصال إلا للتغييرات التي تُجرى عبر واجهة API، ولا ينطلق optout.created حاليًا عند أول إلغاء اشتراك لجهة اتصال على رقم ما. يسرد مرجع webhooks كل حالة. وتُتخطى بعض عمليات التسليم دون إدخال في السجل، وذلك للأحداث التي يتجاوز حجمها 256 KB، ولعمليات التسليم إلى عنوان URL لم يعد يستوفي قواعد عنوان URL، مثلًا بعد تغيير في DNS.
تحقق من عمود HTTP. تعني الشرطة أن نقطة النهاية لم تُجب خلال 10 ثوانٍ أو تعذّر الوصول إليها. رد بحالة 2xx فور تلقي الطلب، ثم نفّذ أي عمل بطيء في الخلفية.
احسب التوقيع على محتوى الطلب الخام، قبل أي تحليل لـ JSON، باستخدام السر نفسه الذي حفظته تمامًا. راجع التحقق من التوقيعات.

ذات صلة

مرجع webhooks

أنواع الأحداث والمحتويات والترويسات والتحقق من التوقيعات.

مفاتيح API

أنشئ المفتاح الذي تحتاجه لإدارة webhooks عبر واجهة API.

مركز المطورين

طلبات API الأخيرة وأدلة البدء السريع وبيئة اختبار API.

الإشعارات

مكان ظهور تنبيه Outbound webhook disabled.
آخر تعديل في ٢٤ أكتوبر ٢٠٢٦