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

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

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

Настройка

Измените базовый URL API в вашем бэкенде:
Прокси пересылает все запросы в Telegram и возвращает ответы без изменений, за исключением перехватываемых методов, которые BotMux обрабатывает внутренне.

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

BotMux также предоставляет эндпоинт загрузки файлов, совместимый как замена base_file_url для библиотек Telegram-ботов:
Этот эндпоинт загружает файл из Telegram и передаёт его клиенту. Файлы WebP (стикеры) автоматически конвертируются в PNG для совместимости с браузерами.

Local Bot API Server как upstream

BotMux может использовать self-hosted Telegram Bot API Server вместо api.telegram.org:
В режиме --local upstream getFile может возвращать абсолютные пути в файловой системе. BotMux обрабатывает это так:
  1. Через /tgapi/ — ответы getFile переписывают абсолютный file_path в относительный путь для BotMux, чтобы бэкенды могли использовать base_file_url=http://botmux:8080/tgapi.
  2. Прямое чтение с диска — если BotMux и Local Bot API на одном хосте/томе, укажите корень файлов:
С -tg-api-files эндпоинты /api/media и /tgapi/file/ могут отдавать файлы напрямую с диска. При кастомном -tg-api автоматически включаются увеличенные лимиты загрузки (до ~2 ГБ) и таймауты.

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

URL прокси API отображается в детальном просмотре бота, когда включён режим прокси (нажмите, чтобы скопировать).

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

Следующие методы Telegram Bot API перехватываются прокси и обрабатываются внутренне BotMux, а не пересылаются в Telegram:
При установке BOTMUX_ALLOW_AUTO_REGISTER=1 перехват setWebhook позволяет миграцию без конфигурации: направьте ваш существующий бэкенд бота на URL прокси API BotMux, и BotMux автоматически зарегистрирует бота и начнёт пересылать обновления на ваш бэкенд.