Перейти к основному содержимому

Создание конечной точки веб-перехватчика | Документация для разработчиков

Создайте конечную точку веб-перехватчика

Обновлено: 7 ноября 2025 г
Изучите запросы и ответы веб-перехватчиков, чтобы настроить собственную конечную точку веб-перехватчика на общедоступном сервере.
Прежде чем использовать ваше приложение в производственной среде, необходимо создать и настроить собственную конечную точку веб-перехватчика на общедоступном сервере, который может принимать и обрабатывать запросы GET и POST, а также проверять и перехватывать данные веб-перехватчика.

TLS/SSL

На сервере конечной точки веб-перехватчика должен быть установлен и правильно настроен цифровой сертификат безопасности TLS или SSL. Самоподписанные сертификаты не поддерживаются.

mTLS

Инструкции по включению и использованию mTLS см. в документе Graph API, посвященном mTLS для веб-хуков
Обратите внимание, что включение и отключение mTLS не поддерживается на уровне WABA или номера корпоративного телефона. Если к платформе обращается более одного приложения, вам потребуется включить mTLS для каждого приложения.

GET-запросы

GET-запросы используются для проверки вашей конечной точки веб-перехватчика. Каждый раз, когда вы устанавливаете или редактируете «URL-адрес обратного вызова» или поле «Проверить токен» на панели управления приложения, Meta отправляет GET-запрос на вашу конечную точку веб-перехватчика. Вы должны проверить этот запрос и ответить на него.

Параметры запроса

Заполнитель Описание Пример значения
<CALLBACK_URL>
URL-адрес конечной точки вашего веб-перехватчика.
Добавьте этот URL-адрес в «URL-адрес обратного вызова» на панели управления приложения при настройке веб-хуков .
https://www.luckyshrub.com/webhooks
<HUB.CHALLENGE>
Случайная строка, сгенерированная Meta.
1158201444
<HUB.VERIFY_TOKEN>
Вы можете выбрать любую строку подтверждения. Сохраните эту строку на своем сервере.
Добавьте эту строку в «Проверить токен» на панели управления приложения при настройке веб-хуков .
вибекодирование

Проверка

Для проверки GET-запросов сравните hub.verify_token в запросе со строкой подтверждения, хранящейся на вашем сервере. Если значения совпадают, запрос считается действительным, в противном случае — недействительным.

Ответ

Если запрос действителен, ответьте HTTP-статусом 200 и hub.challenge . Если запрос недействителен, ответьте HTTP-статусом уровня 400 или любым другим значением, кроме статуса 200 .
При настройке веб-хуков Meta отправит GET-запрос на вашу конечную точку веб-хука. Если запрос вернет статус 200 и hub.challenge , Meta посчитает вашу конечную точку веб-хука проверенной и начнет отправлять вам веб-хуки. Однако если ваша конечная точка веб-хука ответит чем-либо другим, Meta посчитает вашу конечную точку веб-хука непроверенной, и веб-хуки на вашу конечную точку отправляться не будут.

POST-запросы

При каждом срабатывании события веб-перехватчика для любого из полей веб-перехватчика, на которые вы подписаны, на вашу конечную точку веб-перехватчика будет отправлен POST-запрос, содержащий JSON-данные, описывающие событие.

Параметры запроса

Заполнитель Описание Пример значения
<CALLBACK_URL>
URL-адрес конечной точки вашего веб-перехватчика.
https://www.luckyshrub.com/webhooks
<CONTENT_LENGTH>
Длина содержимого в байтах.
492
<JSON_PAYLOAD>
Содержимое тела сообщения, отформатированное в формате JSON.
Видеть Поля references for example payloads.
<SHA256_PAYLOAD_HASH>
HMAC-SHA256 hash, calculated using the post body payload and your секрет приложения as the secret key.
b63bb356dff0f1c24379efea2d6ef0b2e2040853339d1bcf13f9018790b1f7d2

Проверка

Для подтверждения запроса:
Generate an HMAC-SHA256 hash using the JSON payload as the message input and your секрет приложения as the secret key. Compare your generated hash to the hash assigned to the X-Hub-Signature-256 header (everything after sha256=).
Если хеши совпадают, полезная нагрузка действительна. Захватите полезную нагрузку и обработайте её содержимое в соответствии с потребностями бизнеса. Если они не совпадают, считайте полезную нагрузку недействительной.
Обратите внимание, что мы не предоставляем API для получения исторических данных веб-хуков, поэтому собирайте и сохраняйте данные веб-хуков соответствующим образом.

Ответ

Если запрос действителен, ответьте HTTP-статусом 200. В противном случае ответьте HTTP-статусом уровня 400 или любым другим статусом, кроме 200.

Группировка

POST-запросы объединяются и отправляются пакетом, содержащим максимум 1000 обновлений. Однако гарантировать пакетную обработку невозможно, поэтому обязательно настройте свои серверы для обработки каждого POST-запроса индивидуально.
Если какой-либо POST-запрос, отправленный на ваш сервер, не удастся выполнить, мы немедленно повторим попытку, а затем попробуем еще несколько раз с уменьшающейся частотой в течение следующих 36 часов. В таких случаях ваш сервер должен обрабатывать дедупликацию.
Ответы, на которые не будет получено подтверждение, будут удалены через 36 часов.

Настройка веб-хуков

После создания конечной точки веб-перехватчика перейдите в Панель управления приложениями > WhatsApp > конфигурации и добавьте URL-адрес конечной точки веб-перехватчика в «URL-адрес обратного вызова» , а строку подтверждения — в «Подтверждение токена» .
Обратите внимание, что если вы создали приложение, используя взаимодействия с клиентами через WhatsApp , перейдите в Панель управления приложениями > Сценарии использования > Настройка > Конфигурация .
Если ваша конечная точка веб-перехватчика корректно отвечает на GET-запросы проверки веб-перехватчика, панель сохранит ваши изменения, и появится список полей, на которые вы можете подписаться. Затем вы можете подписаться на любые поля , которые соответствуют вашим бизнес-потребностям.
Обратите внимание, что в качестве альтернативного метода для настройки веб-хуков можно использовать POST Application Subscriptions , но для этого требуется токен приложения . Инструкции по настройке см. в документации Graph API настройке подписок , а в качестве значения объекта используйте whatsapp_business_account.