إنتقل إلى المحتوى الرئيسي

Webhooks

Webhooks هي الطريقة التي يُخطر بها مزودو القنوات PulseHub عند حدوث شيء ما — عميل يرسل رسالة، تغيّر حالة التسليم، إلخ.


نمط عنوان URL الخاص بـ Webhook

https://yourdomain.com/webhooks/{channel_type}/{channel_id}

التحقق من Webhook (طلبات GET)

بعض المزودين يتحققون من عنوان URL الخاص بـ webhook بتحدٍ قبل إرسال الرسائل الحقيقية:

WhatsApp / Facebook / Instagram

يتحقق PulseHub من hub.verify_token ويعيد hub.challenge.

Telegram

لا يوجد تحقق GET — ضبط webhook عبر Bot API كافٍ.

Viber

يرسل حدث conversation_started عند الفتح الأول. يُعيد PulseHub {"status": 0}.


التحقق من التوقيع

المزودالرأسالسر
WhatsApp/Facebook/InstagramX-Hub-Signature-256App Secret
ViberX-Viber-Content-SignatureAuth Token
Twilioأمان قائم على URL
Telegramأمان قائم على UUID في URL

جميع مقارنات HMAC تستخدم hash_equals() (وقت ثابت).


تسجيل الأحداث

يتم تسجيل كل حمولة webhook في جدول webhook_events بحالة status = pending. بعد المعالجة: processed. عند الفشل: failed.


إعادة محاولة Webhooks الفاشلة

تقوم مهمة cron بإعادة محاولة الأحداث الفاشلة حتى 5 مرات خلال 24 ساعة.