События
Как получать события?
Получение обновлений с помощью 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 не может присылать уведомления, если не работает сервер бота или есть проблемы с сетью