Skip to main content

Что это такое

YCloud доставляет входящие сообщения WhatsApp на ваш эндпоинт Webhook. После принятия события вы можете отметить сообщение как прочитанное или показать временный индикатор набора текста, пока ваше приложение готовит ответ.

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

  • Настройте эндпоинт Webhook для whatsapp.inbound_message.received.
  • Проверяйте заголовок YCloud-Signature перед обработкой событий.
  • Сохраняйте входящее сообщение id.
  • Подключите бизнес-номер телефона, на который поступило сообщение.

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

  1. Получите и аутентифицируйте событие Webhook.
  2. Выполните дедупликацию события по событию id.
  3. Извлеките входящее сообщение id и его содержимое.
  4. При необходимости отметьте сообщение как прочитанное.
  5. Отображайте индикатор набора текста только тогда, когда подготавливается ответ.
  6. Отправьте ответ с помощью WhatsApp Messages API.
Отметка одного сообщения как прочитанного также помечает как прочитанные более ранние сообщения в диалоге. Индикатор набора текста исчезает при отправке ответа или через 25 секунд (в зависимости от того, что произойдет раньше).

Запрос

Отметить сообщение как прочитанное

POST /whatsapp/inboundMessages/{id}/markAsRead

Показать индикатор набора текста

POST /whatsapp/inboundMessages/{id}/typing
Эта операция также отмечает сообщение как прочитанное.

Ответ

Успешный запрос возвращает HTTP 200 без тела ответа.
Ответ подтверждает, что действие было принято. Он не отправляет ответ пользователю WhatsApp.

Рекомендации по обработке

  • Подтверждайте получение Webhook до запуска медленной обработки ИИ или бизнес-логики.
  • Сохраняйте порядок сообщений в диалоге, если этого требует ваш сценарий использования.
  • Обрабатывайте каждый поддерживаемый входящий type явным образом и сохраняйте неподдерживаемые полезные нагрузки для анализа.
  • Используйте контекст сообщения при ответе на конкретное входящее сообщение.

Ограничения и устранение неполадок

  • Не отображайте индикатор набора текста, если ответ не планируется к отправке.
  • В пути действия используйте ID входящего сообщения, а не ID события Webhook.
  • Обеспечьте идемпотентность обработки Webhook, так как доставка может повторяться.
  • Если действие завершилось сбоем, логируйте YCloud requestId, не сохраняя в логах содержимое сообщений или учетные данные.

Примеры входящих полезных нагрузок

Ознакомьтесь с полезными нагрузками текстовых, медиа-, интерактивных, коммерческих и системных сообщений.

API отметки о прочтении

Ознакомьтесь с полным контрактом эндпоинта.