Перейти к основному содержанию
BotMux предоставляет прокси Telegram API по адресу /tgapi/, который прозрачно пересылает запросы на api.telegram.org и перехватывает исходящие сообщения. Также прокси перехватывает ряд управляющих методов, чтобы ваш бэкенд мог использовать стандартный Telegram Bot API без конфликтов с внутренним состоянием BotMux.

Зачем использовать прокси API?

getUpdates в Telegram возвращает только входящие сообщения — сообщения, отправленные самим ботом, не включаются. Прокси API решает эту проблему, перехватывая методы отправки и сохраняя отправленное сообщение в базу данных.

Настройка

Измените базовый URL API в вашем бэкенде:
# До (напрямую)
https://api.telegram.org/bot{TOKEN}/sendMessage

# После (через прокси BotMux)
http://localhost:8080/tgapi/bot{TOKEN}/sendMessage
Прокси пересылает все запросы в Telegram и возвращает ответы без изменений, за исключением перехватываемых методов, которые BotMux обрабатывает внутренне.

Прокси загрузки файлов

BotMux также предоставляет эндпоинт загрузки файлов, совместимый как замена base_file_url для библиотек Telegram-ботов:
# По умолчанию (Telegram)
https://api.telegram.org/file/bot{TOKEN}/{file_path}

# Через прокси BotMux
http://localhost:8080/tgapi/file/bot{TOKEN}/{file_path}
Этот эндпоинт загружает файл из Telegram и передаёт его клиенту. Файлы WebP (стикеры) автоматически конвертируются в PNG для совместимости с браузерами.

Захватываемые методы отправки

МетодОписание
sendMessageТекстовые сообщения
sendPhotoФотографии
sendAudioАудиофайлы
sendDocumentДокументы
sendVideoВидео
sendAnimationGIF/анимации
sendVoiceГолосовые сообщения
sendVideoNoteВидеозаметки
sendStickerСтикеры
sendLocationМестоположения
sendVenueМеста
sendContactКонтакты
sendPollОпросы
sendDiceКубик
forwardMessageПересланные сообщения
copyMessageСкопированные сообщения
editMessageTextОтредактированные сообщения
URL прокси API отображается в детальном просмотре бота, когда включён режим прокси (нажмите, чтобы скопировать).

Перехватываемые методы управления

Следующие методы Telegram Bot API перехватываются прокси и обрабатываются внутренне BotMux, а не пересылаются в Telegram:
МетодПоведение
setWebhookРегистрирует URL вебхука как URL бэкенда бота в BotMux и включает режим прокси. Если токен бота ещё не зарегистрирован, BotMux автоматически регистрирует его через getMe. Поддерживает параметры url и drop_pending_updates.
deleteWebhookОчищает URL бэкенда и отключает режим прокси для бота. Поддерживает drop_pending_updates.
getWebhookInfoВозвращает внутреннее состояние вебхука BotMux, включая настроенный URL бэкенда и количество ожидающих обновлений.
getUpdatesКогда включён long polling, возвращает обновления из внутренней очереди BotMux вместо прямого опроса Telegram. Когда бот управляется BotMux, но long polling не включён, возвращает пустой результат для предотвращения конфликтов.
logOutВозвращает успех без пересылки в Telegram. Пересылка отключила бы токен на 10 минут, нарушая опрос BotMux.
closeВозвращает успех без пересылки в Telegram. Пересылка остановила бы экземпляр бота на стороне Telegram.
Перехват setWebhook позволяет миграцию без конфигурации: направьте ваш существующий бэкенд бота на URL прокси API BotMux, и BotMux автоматически зарегистрирует бота и начнёт пересылать обновления на ваш бэкенд.