Skip to main content
Полный каталог на основе схем приведен в разделе Все примеры.

Что это такое

Обработка событий синхронизации истории WhatsApp Business App.

Перед началом работы

  • Создайте общедоступный HTTPS-эндпоинт в своем приложении.
  • Настройте эндпоинт Webhook в YCloud для необходимых типов событий.
  • Обеспечьте безопасное хранение секрета подписи эндпоинта.
  • Сделайте обработку событий идемпотентной.

Как это работает

YCloud отправляет HTTP-запрос POST при возникновении события. Проверьте подпись, надежно сохраните событие, верните ответ 2xx и выполняйте длительные задачи асинхронно. Для событий, созданных из фрагмента истории Meta, YCloud копирует phase и progress фрагмента в событие верхнего уровня. Фрагменты, содержащие сообщения, включают один объект сообщения в зависимости от направления. Если оба поля threads и errors пусты, YCloud отправляет одно событие только с информацией о прогрессе без whatsappMessage или whatsappInboundMessage. Доставка выполняется по модели at-least-once (как минимум один раз), и события могут приходить не по порядку. Выполняйте дедупликацию по id события; не используйте phase и progress в качестве уникального ключа доставки.

Запрос

В приведенных ниже сценариях показаны запросы, отправляемые на ваш Webhook URL. Используйте id события как идентификатор доставки, а type — для маршрутизации полезной нагрузки.

Ответ

Возвращайте статус 2xx после успешного принятия события.
Информацию о настройке эндпоинта, проверке подписи и логике повторных попыток см. в разделе Настройка Webhook.

Входящее текстовое сообщение

В этом случае ваш эндпоинт Webhook получил входящее текстовое сообщение:
  • Содержит обычный текст, отправленный пользователем.
  • Содержит информацию об упомянутом сообщении в context.
  • Для других типов сообщений см. whatsappInboundMessage

Запрос

Ответ

Подтвердите доставку после надежного сохранения события.

Объяснение

  • Входящие сообщения — это сообщения, отправленные клиентами на телефонные номера вашей компании.
  • Поле context (необязательно) содержит информацию об упомянутом сообщении, обычно используемую для ответа на предыдущее сообщение, отправленное пользователем или вашей компанией.
    • context.from — это WhatsApp ID (номер телефона без префикса «+») пользователя, отправившего упомянутое сообщение.
    • context.id — это исходный ID упомянутого сообщения на платформе WhatsApp, начинающийся с wamid..

Исходящее текстовое сообщение

В этом случае ваш эндпоинт Webhook получил исходящее текстовое сообщение, отправленное бизнес-клиентом пользователю WhatsApp через приложение WhatsApp Business или поддерживаемое сопряженное устройство:

Запрос

Ответ

Подтвердите доставку после надежного сохранения события.

Объяснение

Маршрутизируйте событие по type, дедуплицируйте его по id и передавайте медленные или потенциально сбойные задачи в асинхронный обработчик.

Фрагмент истории только с информацией о прогрессе

Если фрагмент истории Meta не содержит ни цепочек сообщений, ни ошибок, событие все равно передает свои метаданные синхронизации. Событие не содержит полезной нагрузки сообщения.

Запрос

Ответ

Объяснение

В этом событии намеренно отсутствует объект сообщения WhatsApp. Продолжайте отслеживать прогресс и подтверждайте получение, как и при любой другой доставке Webhook.