Полный каталог, сформированный на основе схемы, см. в всех примерах.
Что это такое
Обработка событий завершения звонков, записи и транскрипции в WhatsApp.Перед началом работы
- Создайте публичный эндпоинт HTTPS в вашем приложении.
- Настройте эндпоинт Webhook в YCloud для необходимых типов событий.
- Надежно сохраните секретный ключ подписи эндпоинта.
- Обеспечьте идемпотентность обработки событий.
Как это работает
YCloud отправляет запрос HTTPPOST при возникновении события. Проверьте подпись, надежно сохраните событие, верните ответ 2xx и выполняйте длительные операции асинхронно.
Запрос
В приведенных ниже сценариях показаны запросы, отправляемые на ваш Webhook URL. Используйтеid события как идентификатор доставки, а type — для маршрутизации полезной нагрузки.
Ответ
Возвращайте статус2xx после принятия события.
Сведения о настройке эндпоинта, проверке подписи и механизме повторных попыток см. в разделе Настройка Webhook.
Звонок завершен
Запрос
Ответ
Подтвердите доставку после надежного сохранения события.Пояснение
Маршрутизируйте событие поtype, дедуплицируйте его по id и переносите медленные или подверженные сбоям задачи в асинхронный обработчик.
Сбой звонка
Запрос
Ответ
Подтвердите доставку после надежного сохранения события.Пояснение
Маршрутизируйте событие поtype, дедуплицируйте его по id и переносите медленные или подверженные сбоям задачи в асинхронный обработчик.
Запись звонка доступна
Для звонка, инициированного через API с включенной записью,whatsapp.call.recording.updated сообщает о доступности записи или о неустранимой ошибке обработки.
Запрос
Ответ
Подтвердите доставку после надежного сохранения события.Пояснение
ИспользуйтеcallingRecording.wacid для идентификации звонка и phoneId для идентификации номера телефона компании. Скачивайте mediaAssetId только тогда, когда status имеет значение AVAILABLE. Обработка записи отделена от результата завершения звонка. В случае FAILED проверьте error.code и error.retryable. См. раздел записи и транскрипции.
Сбой транскрипции звонка
Для звонка, инициированного через API с включенной транскрипцией,whatsapp.call.transcription.updated сообщает о доступности транскрипции или о неустранимой ошибке обработки.
Запрос
Ответ
Подтвердите доставку после надежного сохранения события.Пояснение
СчитывайтеcallingTranscription, а не callingRecording. В этом примере status имеет значение FAILED, а error.retryable равно false. Не пытайтесь скачать ресурс с ошибкой. При результате AVAILABLE для скачивания используется mediaAssetId; результат транскрипции не зависит от результата записи и статуса завершения звонка.
