Аккаунты WhatsApp Business и их ресурсы представлены в социальном графе Facebook объектами. Как только для одного из этих объектов срабатывает событие-триггер, Facebook отправляет уведомление на URL Webhooks, заданный на панели приложения Facebook.
Вы можете использовать Webhooks в рамках регистрации на сайте поставщика, чтобы получать уведомления об изменениях для своих аккаунтов WhatsApp Business, номера телефонов, шаблоны сообщений и сообщения, отправленные на ваши номера телефонов.
На каждый аккаунт WhatsApp Business, для которого вы хотите получать Webhooks, необходимо подписаться отдельно. Получив ID аккаунта WhatsApp Business клиента, подпишите приложение на него, чтобы начать получать Webhooks.
Подробнее см. в статье о Webhooks для аккаунтов WhatsApp Business.
Сначала настройте продукт Webhooks для приложения:
Подробнее о подписке на Webhooks на панели приложений см. в разделе Настройка продукта Webhooks.
Настроив Webhooks на панели продукта Webhooks, отправьте запрос POST к конечной точке subscribed_apps
для того аккаунта WhatsApp Business, для которого необходимо получать Webhooks.
В заголовке запроса укажите свой маркер доступа системного пользователя, перед которым должен следовать параметр Authorization: Bearer
. Справку по генерации маркера доступа системного пользователя см. в разделе "Системные пользователи: установка приложений и создание маркеров".
POST https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
curl -X POST \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "success" : true }
Ваше приложение, которое идентифицируется по маркеру доступа системного пользователя, теперь должно получать уведомления Webhooks с описанием изменений для аккаунта WhatsApp Business.
Повторите этот процесс для каждого аккаунта WhatsApp Business, для которого необходимо получать уведомления Webhooks. Обратите внимание: если вы подпишите свое приложение на Webhooks для нескольких аккаунтов WhatsApp Business, все уведомления Webhooks будут отправляться на тот URL-адрес обратного вызова приложения, который указан на панели продукта Webhooks на панели приложений.
Если для каждого аккаунта WhatsApp Business вы хотите использовать разные URL обратного вызова, создайте отдельные приложения с собственным URL обратного вызова для каждого аккаунта WhatsApp Business и выполните вышеуказанный запрос к каждому такому аккаунту, используя маркер доступа системного пользователя каждого приложения. Как вариант, если вы хотите использовать одно приложение, вы можете переопределить URL обратного вызова при оформлении подписки на Webhooks для каждого аккаунта WhatsApp Business. См. Переопределение URL обратного вызова.
Чтобы получить список приложений, подписанных на Webhooks для аккаунта WhatsApp Business, отправьте запрос GET к конечной точке subscribed_apps
в аккаунте WhatsApp Business:
GET https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
В случае успеха ответ будет содержать массив приложений, подписанных на этот аккаунт WhatsApp Business, со ссылками, именами и ID для каждого приложения.
curl \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "data" : [ { "whatsapp_business_api_data" : { "id" : "67084...", "link" : "https://www.facebook.com/games/?app_id=67084...", "name" : "Jaspers Market" } }, { "whatsapp_business_api_data" : { "id" : "52565...", "link" : "https://www.facebook.com/games/?app_id=52565...", "name" : "Jaspers Fresh Finds" } } ] }
Чтобы отменить подписку вашего приложения на Webhooks для аккаунта WhatsApp Business, отправьте запрос DELETE к конечной точке subscribed_apps
в аккаунте WhatsApp Business.
DELETE https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
curl -X DELETE \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "success" : true }
См. статью Переопределения Webhooks.
Чтобы получать уведомления об изменениях в ваших аккаунтах WhatsApp Business, можно настроить Webhooks. Можно подписаться на следующие виды уведомлений:
Имя поля | Описание |
---|---|
| Уведомления об окончании проверки аккаунта WhatsApp Business. |
| Уведомления об изменениях в вашем аккаунте WhatsApp Business. Это могут быть обновление номера телефона, нарушение политики, блокировка аккаунта WhatsApp Business и др. |
| Уведомления об изменении ограничений. Например, это может быть ограничение на количество номеров телефонов, связанных с одним аккаунтом WhatsApp Business, или на количество переписок для каждого номера телефона. |
| Уведомления об одобрении, отклонении или отключении шаблона сообщения. |
| Уведомления о получении вашей компанией сообщения от клиента, об отправке вами сообщения клиенту, о доставке сообщения клиенту и о прочтении вашего сообщения клиентом. |
| Уведомления об одобрении или отклонении имени, связанного с номером телефона. |
| Уведомления об обновлении статуса, связанного с качеством, для номера телефона. |
| Уведомления о следующем: |
Подробнее обо всех полях с полезными данными см. в справке по Webhooks для аккаунта WhatsApp Business , а о типах уведомлений messages
, которые можно получать, — в справке по Webhooks для облачного API WhatsApp .
Подробнее см. в документации по Webhooks для аккаунтов WhatsApp Business.
{ "object": "whatsapp_business_account", "entry": [ { "id": "waba-id", "time": 1608243053, "changes": [ { "field": "phone_number_name_update", "value": { "display_phone_number": "16505551111", "decision": "APPROVED", "requested_verified_name": "WhatsApp", "rejection_reason": null } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "waba-id", "time": 1608243062, "changes": [ { "field": "phone_number_quality_update", "value": { "display_phone_number": "16505551111", "event": "FLAGGED", "current_limit": "TIER_10K" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703058, "changes": [ { "field": "account_update", "value": { "phone_number": "16505551111", "event": "VERIFIED_ACCOUNT" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703058, "changes": [ { "field": "account_update", "value": { "event": "DISABLED_UPDATE" "ban_info": { "waba_ban_state": ["SCHEDULE_FOR_DISABLE", "DISABLE", "REINSTATE"], "waba_ban_date": "January 31, 2021" } } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703141, "changes": [ { "field": "account_review_update", "value": { "decision": "APPROVED" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703141, "changes": [ { "field": "message_template_status_update", "value": { "event": "APPROVED", "message_template_id": 1234567, "message_template_name": "My message template", "message_template_language": "en-US", "reason": null } } ] } ] }