Тема
Are you an LLM? You can read better optimized documentation at /guide\proxy-telegram.md for this page in Markdown format
Telegram: подключение через прокси
Шаг 1. Установить webhook
После добавления бота в кабинете возьмите URL вида:
https://capybara.maxbotstat.ru/proxy/<botId>/<secret>И установите его как webhook бота:
bash
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" \
--data-urlencode "url=https://capybara.maxbotstat.ru/proxy/<botId>/<secret>"Ответ Telegram:
json
{ "ok": true, "result": true, "description": "Webhook was set" }Шаг 2. Сузить allowed_updates (по желанию)
По умолчанию Telegram шлёт все типы апдейтов. Можно отфильтровать на стороне Telegram:
bash
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" \
--data-urlencode "url=https://capybara.maxbotstat.ru/proxy/<botId>/<secret>" \
--data-urlencode 'allowed_updates=["message","edited_message","callback_query","my_chat_member","chat_member"]'Список доступных типов: Telegram Bot API → Update.
Шаг 3. Проверить через getWebhookInfo
bash
curl "https://api.telegram.org/bot<TOKEN>/getWebhookInfo"Ожидаемый ответ:
json
{
"ok": true,
"result": {
"url": "https://capybara.maxbotstat.ru/proxy/abc123/.../...",
"has_custom_certificate": false,
"pending_update_count": 0,
"max_connections": 40,
"allowed_updates": ["message", "callback_query"]
}
}pending_update_count: 0 означает, что все апдейты доставлены.
Шаг 4. Проверить в кабинете
Откройте чат с ботом, отправьте /start. В разделе Контакты вашего бота появится новый контакт, в Диалоги — сообщение /start. Если их нет — см. раздел Диагностика.
Если ваш backend тоже должен получать апдейты
В карточке бота укажите поле target_url:
target_url = https://yourapp.com/tg-webhookMaxBotStat запишет апдейт у себя и передаст запрос на target_url без изменений. Telegram-токен из URL не утекает (его в URL и не было).
Один webhook на бота
Telegram разрешает только один webhook на бота. Поэтому либо ваш backend → либо MaxBotStat → либо MaxBotStat с target_url. Третий вариант покрывает оба случая.
Откатиться (вернуть webhook на свой backend)
bash
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" \
--data-urlencode "url=https://yourapp.com/tg-webhook"Бот в MaxBotStat останется, но новые апдейты в него поступать перестанут. Можно временно деактивировать его в кабинете кнопкой Деактивировать.
Полное удаление webhook
bash
curl -X POST "https://api.telegram.org/bot<TOKEN>/deleteWebhook"После этого Telegram переключается обратно на режим long polling.
Диагностика
| Симптом | Причина | Что делать |
|---|---|---|
getWebhookInfo показывает last_error_date | URL недоступен или вернул не-200 | Проверьте, что бот не удалён в кабинете и proxy_secret верный |
Telegram пишет webhook can be set up only on ports 80, 88, 443 or 8443 | Прокси MaxBotStat — на 443, проверьте, что в URL нет другого порта | — |
| Контакт появился, а сообщения нет | Заблокирован тип апдейта в allowed_updates | Удалите фильтр или добавьте message |
Всё работает, но в target_url тишина | Нет ответа 2xx, либо target_url=polling | См. логи вашего backend / поменяйте target_url |
Полезные ссылки
- Telegram Bot API → setWebhook
- Telegram Bot API → getWebhookInfo
- Прокси
api.telegram.org— для регионов с ограниченным доступом.