Вебхук

Вебхук — механизм, при котором внешняя система отправляет HTTP POST-запрос на указанный URL, когда происходит определённое событие. Это позволяет боту реагировать на события в реальном времени: новое сообщение от пользователя, оплата заказа, изменение статуса в CRM — без необходимости постоянно опрашивать API.

Вебхук против 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-диапазона платформы.

Связанные термины

Хотите настроить интеграции через вебхуки? Обсудим задачу.

Связаться с нами