Получение обновлений: webhook
Боту можно задать настройку webhook_url
, после чего все обновления будут отправляться в виде POST-запроса по указанному адресу.
Тело запроса будет идентично ответу метода bot/v1/messages/getUpdates/
.
Задание webhook_url
Метод позволяет задать боту вебхук.
HTTP метод: POST
URL: https://botapi.messenger.yandex.net/bot/v1/self/update/
Заголовки
Authorization: OAuth <токен>
Content-Type: application/json
Тело запроса (JSON или URL Query)
Имя параметра | Обязательный | Тип | Описание | Ограничения, значение по умолчанию |
---|---|---|---|---|
webhook_url |
Нет | URL |
URL для получения обновлений | — |
Пример запроса (POST) с установкой webhook_url
curl -H 'Authorization: OAuth AtXXXXXXXXXXX' \
-H "Content-Type: application/json" \
-d '{"webhook_url": "https://my-service.ru/bot_webhook"}' \
'https://botapi.messenger.yandex.net/bot/v1/self/update/'
Пример успешного ответа с установкой
{
"ok": true,
"id": "103ecea2-e303-478d-91a7-b6d423ace527",
"display_name": "My bot",
"webhook_url": "https://my-service.ru/bot_webhook",
"organizations": [567890],
"login": "bot@my-service.ru"
}
Пример запроса (POST) со сбросом webhook_url
curl -H 'Authorization: OAuth AtXXXXXXXXXXX' \
-H "Content-Type: application/json" \
-d '{"webhook_url": null}' \
'https://botapi.messenger.yandex.net/bot/v1/self/update/'
Пример успешного ответа со сбросом
{
"ok": true,
"id": "103ecea2-e303-478d-91a7-b6d423ace527",
"display_name": "My bot",
"webhook_url": null,
"organizations": [567890],
"login": "bot@my-service.ru"
}
Гарантии доставки
-
При неуспешном запросе в вебхук (
connection timeout = 100ms
илиread timeout = 1s
или http-код ответа5xx
) будет осуществлена ещё одна попытка. -
В случае неудачи сообщение будет сохранено для отложенной доставки: через 10 секунд будет запущен процесс досылки с экспоненциальными интервалами, вычисляемыми как <время_отправки_сообщения> + 2^(<номер_текущей_попытки> - 1) * 30 (в секундах).
-
Через 24 часа с момента отправки все недоставленные сообщения удаляются и не будут получены ботом.