تتيح لك أحداث Webhooks تلقي إشعارات HTTP فورية تتضمن التغييرات التي تطرأ على كائنات محددة. على سبيل المثال، يمكننا إرسال إشعار إليك عندما يرسل لك المستخدم رسالة أو عند تغير حالة قالب الرسالة. وسيوفر عليك هذا الاضطرار إلى إرسال الاستعلامات إلى واجهات API التي نوفرها لمعرفة التغييرات التي تطرأ على الكائنات التي قد حدثت أو لم تحدث، ويساعدك في تجنب الوصول إلى حد تقييد معدلات الاستدعاء لديك.
يوفر هذا المستند نظرة عامة على أحداث Webhooks وتنطبق هذه الأحداث على API إدارة حساب واتساب للأعمال وAPI السحابة الخاصة بمنصة واتساب للأعمال وAPI داخل المواقع الخاصة بمنصة واتساب للأعمال.
يمكن أن تحتوي كل API على عدة أنواع من الكائنات، لذا كلما تقوم بتكوين حدث Webhook، يجب أولاً اختيار نوع كائن. نظرًا لأن الكائنات المختلفة لديها حقول مختلفة، يجب الاشتراك في حقول محددة لنوع الكائن هذا. عند وجود تغيير في القيمة الخاصة بحقل أي كائن قمت بالاشتراك فيه، ستتلقى إشعارًا.
يتم إرسال الإشعارات إليك كطلبات HTTP POST وتحتوي على حمولة بيانات JSON تصف التغيير.
يوضح الجدول التالي المعلومات التي يمكنك تلقيها من جانب أحداث Webhooks.
API | الكائنات |
---|---|
API السحابة |
|
API داخل المواقع |
|
API إدارة حساب واتساب للأعمال |
|
تمثل الأمثلة التالية إشعار Webhook يتم إرساله إليك عندما يرسل لك مستخدم رسالة نصية.
بالنسبة لواجهة API السحابة، دائمًا ما يكون الكائن whatsapp_business_account
، لكن الحقل field
سيشير إلى نوع المعلومات التي يتم إرسالها.
{ "object": "whatsapp_business_account", "entry": [{ "id": "WHATSAPP_BUSINESS_ACCOUNT_ID", "changes": [{ "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": PHONE_NUMBER, "phone_number_id": PHONE_NUMBER_ID }, "contacts": [{ "profile": { "name": "NAME" }, "wa_id": PHONE_NUMBER }], "messages": [{ "from": PHONE_NUMBER, "id": "wamid.ID", "timestamp": TIMESTAMP, "text": { "body": "MESSAGE_BODY" }, "type": "text" }] }, "field": "messages" }] }] }
بالنسبة لواجهة API داخل المواقع، نظرًا لأن عميلك هو الذي يرسل حدث Webhook بدلاً من Meta، فسيكون الكائن contacts
وmessages
وerrors
أو statuses
وpricing
.
{ "contacts": [{ "profile": { "name": "NAME" }, "wa_id": "WHATSAPP_BUSINESS_ACCOUNT_ID" }], "messages":[{ "from": "PHONE_NUMBER", "id": "wamid.ID", "timestamp": "TIMESTAMP", "text": { "body": "MESSAGE_BODY" }, "type": "text" }] }
يتم إرسال كل أحداث Webhooks باستخدام HTTPS، لذلك يجب أن يكون خادمك قادرًا على تلقي طلبات HTTPS ومعالجتها، ويجب أن يكون مثبتًا عليه شهادة TLS/SSL صالحة. علمًا بأن الشهادات الموقّعة ذاتيًا غير مدعومة.
تعرف على المزيد حول أحداث Webhooks لواجهة API محددة.