Skip to main content
Используйте эндпоинт Flow, когда вам требуется динамически загружать экраны или обрабатывать данные, отправленные пользователем WhatsApp. Настройте ваш публичный HTTPS URL в качестве endpointUri при создании Flow или обновлении его метаданных. В этом руководстве описываются обычные JSON-запросы, которые YCloud пересылает на ваш эндпоинт. Оно не описывает прямое подключение к зашифрованному эндпоинту данных Meta. Информацию о создании, предварительном просмотре, публикации и управлении жизненным циклом Flow см. в руководстве Управление WhatsApp Flows.

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

  • Предоставьте публичный эндпоинт HTTPS, принимающий запросы POST.
  • Возвращайте JSON в течение 15 секунд.
  • Определите экраны и их поля данных в JSON вашего Flow.
  • Сгенерируйте flow_token при отправке сообщения Flow, чтобы сопоставить взаимодействие с сессией вашего приложения.
  • Используйте валидацию на стороне сервера перед принятием отправленных данных.

Поток обработки запросов

  1. Пользователь открывает Flow или взаимодействует с ним в WhatsApp.
  2. YCloud пересылает JSON-запрос на ваш настроенный эндпоинт.
  3. Ваш эндпоинт считывает action и обрабатывает запрос.
  4. Ваш JSON-ответ выбирает экран и предоставляет для него данные, либо завершает Flow.

Обработка проверки работоспособности (health check)

Проверка работоспособности содержит action: ping:
Верните:
Сохраняйте этот путь легковесным. Не выполняйте бизнес-транзакции во время проверки работоспособности.

Обработка уведомления об ошибке

Уведомления об ошибках содержат data.error и data.error_message. В качестве действия они могут использовать INIT или data_exchange. Проверяйте наличие данных об этих ошибках перед маршрутизацией обычных запросов по действию (action).
Зафиксируйте ошибку для расследования и верните подтверждение:

Обработка обмена данными

Обрабатывайте каждое действие в соответствии с определенными вами экранами:

Переход к экрану

screen должен присутствовать в вашем JSON Flow. Объявленная для него схема данных должна принимать поля из data.

Возврат ошибки валидации

Останьтесь на текущем экране и верните поле ошибки, отображаемое вашим экраном:

Завершение Flow

Верните screen: SUCCESS со значением extension_message_response.params. Включите исходный flow_token и любые дополнительные поля результатов, которые требуются в ответном сообщении Flow.
Это действие закрывает Flow и отправляет ответное сообщение Flow в чат. Извлеките результат из входящего вебхука с ответом Flow.

Пример реализации

В этом примере для Express обрабатываются все три категории запросов. Сопоставьте идентификаторы экранов и поля ответов с вашим собственным Flow JSON. Подключите все механизмы контроля доступа к эндпоинту, используемые в вашей среде, до этого обработчика.

Проверка эндпоинта

Проверьте ping, подтверждение ошибок, INIT без screen или data, корректную и некорректную отправку данных, BACK, а также завершение SUCCESS. Проверьте 15-секундный лимит ответа и убедитесь, что завершающий вебхук содержит ваш исходный flow_token. Выполните предварительный просмотр Flow перед его публикацией.