Вебхук против polling: в чём разница
Polling — бот сам периодически спрашивает сервер: «Есть что-то новое?». При частоте опроса 1 раз в секунду — 86 400 запросов в сутки, большинство из которых возвращают пустой ответ. Высокая нагрузка на API, задержка до 1 секунды.
Webhook — сервер сам уведомляет бота при событии. 0 лишних запросов, задержка 50–200 мс. Telegram Bot API, WhatsApp Business API, AmoCRM, Bitrix24 — все они поддерживают вебхуки. Для продакшн-ботов webhook всегда предпочтительнее polling.
Как настроить вебхук для Telegram-бота
Один API-вызов: setWebhook?url=https://yourdomain.com/webhook. После этого Telegram будет отправлять каждое входящее сообщение POST-запросом на указанный URL. Сервер должен отвечать HTTP 200 в течение 60 секунд; если нет — Telegram повторит доставку до 3 раз с нарастающей задержкой.
Важно: вебхук-эндпоинт должен быть доступен по HTTPS с валидным TLS-сертификатом. Самоподписанные сертификаты Telegram не принимает для внешних URL — используйте Let's Encrypt или Cloudflare.
Верификация вебхуков
Любой может отправить POST-запрос на ваш вебхук-URL, если знает адрес. Для защиты используют: (1) секретный токен в заголовке — Telegram добавляет X-Telegram-Bot-Api-Secret-Token; (2) HMAC-подпись — Stripe, GitHub, AmoCRM подписывают тело запроса секретным ключом, сервер проверяет подпись; (3) IP-фильтрацию — разрешить запросы только с IP-диапазона платформы.
Связанные термины
- API-интеграция — общий контекст работы с внешними системами
- CRM-интеграция — вебхуки от CRM при изменении сделки
- Чат-бот — как бот получает сообщения через вебхук
- Омниканальность — вебхуки от нескольких каналов в одном роутере
Хотите настроить интеграции через вебхуки? Обсудим задачу.
Связаться с нами