RouteHook relay diagram: Telegram updates go through RouteHook to your webhook, Bot API requests use routehook.ipcfg.com

Если у вас уже есть Telegram-бот, скорее всего, вокруг него давно сложилась простая рабочая схема: Telegram отправляет updates на ваш webhook, а ваш код отвечает пользователям через Bot API.

Проблемы начинаются, когда прямые запросы к Bot API становятся нестабильными: где-то не проходит исходящее соединение, где-то серверное окружение ведет себя по-разному, где-то хочется добавить понятную инфраструктурную прослойку без переезда всего проекта.

RouteHook решает именно эту задачу. Это Telegram Bot API relay на Cloudflare Workers.

Начать подключение можно прямо в Telegram: @RouteHookBot.

Как это работает

RouteHook ставится между Telegram и вашим сервером:

Telegram -> RouteHook -> ваш webhook

Для исходящих запросов к Bot API вы используете персональный relay URL:

https://routehook.ipcfg.com/<public_id>/bot<TOKEN>/<method>

То есть вместо:

https://api.telegram.org/bot<TOKEN>/sendMessage

вызываете:

https://routehook.ipcfg.com/<public_id>/bot<TOKEN>/sendMessage

Остальная логика бота остается прежней.

Что обычно не нужно менять

Если у бота уже есть рабочий webhook, его код можно не трогать. При подключении RouteHook сам проверит текущий webhook и предложит оставить его.

В этом режиме схема выглядит так:

Telegram отправляет update в RouteHook
RouteHook проверяет внутренний secret
RouteHook пересылает update на ваш текущий webhook
ваш сервер обрабатывает update как раньше

Вам не нужно добавлять SDK, переносить проект, подключать npm-пакеты или переписывать обработчики.

Когда подойдет API-only

Иногда бот не принимает входящие updates через webhook, а только отправляет сообщения: уведомления, алерты, служебные отчеты, сообщения из CRM или админки.

Для такого сценария есть API-only режим. RouteHook не назначает webhook и выдает только Bot API relay URL.

Что делает RouteHook с безопасностью

RouteHook не хранит тела updates и тексты сообщений. Bot token нужен для настройки relay, но не показывается обратно в интерфейсе.

На участке Telegram -> RouteHook используется внутренний secret. На участок RouteHook -> ваш webhook можно дополнительно добавить свой заголовок:

X-RouteHook-Secret

Это необязательно для обычного подключения, но полезно, если ваш webhook хочет принимать запросы только от RouteHook.

Как подключиться

  1. Откройте бота RouteHook в Telegram.
  2. Купите relay для одного бота.
  3. Отправьте bot token вашего Telegram-бота.
  4. Если webhook уже найден, выберите Оставить текущий webhook.
  5. Получите персональный API base URL.
  6. Замените https://api.telegram.org в своем коде на выданный URL.

После подключения можно проверить состояние командой:

/checkbot <public_id>

Она покажет текущий Telegram webhook, количество pending updates и подскажет, где искать проблему, если бот не отвечает.

Для кого это

RouteHook подойдет небольшим и средним Telegram-ботам, которые уже работают на PHP, Node.js, Python или любом другом backend, и которым нужен простой relay без переезда проекта.

Главная идея простая: оставить webhook как есть, заменить базовый адрес Bot API и продолжить работу.

Попробовать RouteHook можно через Telegram-бота: @RouteHookBot.