События

Как получать события?

Получение обновлений с помощью Long Polling ограничено по скорости и сроку хранения событий — этот способ не подходит для production-окружения. Рекомендуем на всех этапах работы использовать Webhook

API поддерживает два типа уведомлений о действиях пользователей с ботом — выбор зависит от этапа работы:

  • Для production-окружения — только Webhook
  • Для разработки и тестирования — Webhook или Long Polling

Использовать одновременно оба типа нельзя — выберите один из них

Чтобы подключить получение обновлений о событиях через Webhook, отправьте POST-запрос /subscriptions с URL, на который хотите получать уведомления

Чтобы получить список всех подписок на обновления через Webhook, отправьте GET-запрос /subscriptions

Webhook-endpoint должен возвращать HTTP 200. Если доставка не удалась или от Webhook-endpoint не получен успешный ответ, выполняются повторные попытки отправки событий. Если в течение 8 часов ответ не получен, бот автоматически от него отписывается. Подробнее — в описании запроса POST /subscriptions

Чем Long Polling отличается от Webhook-подписок?

Получение обновлений с помощью Long Polling ограничено по скорости и сроку хранения событий — этот способ не подходит для production-окружения. Рекомендуем на всех этапах работы использовать Webhook

Long Polling и Webhook отличаются способом взаимодействия с сервером и продолжительностью отклика. Webhook после новых действий в чат-боте сам отправляет запрос на сервер, а Long Polling делает периодические запросы без триггера в боте

Long Polling не требует внешнего сервера с защищённым соединением HTTPS и статичного IP. Бот будет самостоятельно отправлять запросы на сервер и ждать ответа о новых сообщениях. Long Polling малоэффективен при высокой интенсивности обновлений и подходит только для тестирования и разработки. Задержка ответов из-за ожиданий и таймаутов может привести к накоплению очереди открытых соединений, поэтому использовать его для production-окружения нельзя

Чтобы работать с Webhook, необходимо настроить публичный сервер с защищённым соединением HTTPS и статичным IP-адресом. Webhook эффективен при высокой интенсивности обновлений и подходит для всех этапов работы: разработки, тестирования, production-окружения

Почему не приходят уведомления Webhook?

Webhook не может присылать уведомления, если не работает сервер бота или есть проблемы с сетью