Почему MTProto-прокси не подходит для Bot API

Здесь есть ловушка: прокси из этого каталога боту на Bot API не подойдут. Бот, написанный на aiogram, python-telegram-bot или любой другой библиотеке Bot API, общается с Telegram обычными HTTPS-запросами к api.telegram.org. MTProto-прокси умеет только протокол приложений Telegram, поэтому боту нужен HTTP- или SOCKS5-прокси — или сервер, откуда api.telegram.org доступен напрямую.

Какой прокси нужен вашей библиотеке

БиблиотекаКакой проксиПрокси из каталога
aiogram, python-telegram-bot, telebot, grammY (Bot API)HTTP или SOCKS5MTProto — нет
Telethon (MTProto, в том числе вход ботом)MTProto, SOCKS5, HTTPДа, кроме EE-Mask: fake-TLS Telethon не поддерживает
Webhook-ботПрокси не нужен для входящих: Telegram сам стучится на ваш сервер—

Прокси в коде

01
aiogram 3
Прокси передаётся в сессию бота. Для SOCKS5 нужен пакет aiohttp-socks.
$ from aiogram import Bot from aiogram.client.session.aiohttp import AiohttpSession session = AiohttpSession(proxy="socks5://user:pass@host:1080") bot = Bot(TOKEN, session=session)
02
python-telegram-bot 21+
Прокси задаётся в билдере приложения. Для SOCKS5 установите python-telegram-bot[socks].
$ app = (Application.builder() .token(TOKEN) .proxy("socks5://user:pass@host:1080") .get_updates_proxy("socks5://user:pass@host:1080") .build())
03
Telethon с MTProto-прокси
Telethon работает по MTProto, поэтому ему подходят прокси из каталога с типом No-Mask и DD-Mask — секрет передаётся как есть. EE-Mask (fake-TLS) Telethon не поддерживает.
$ from telethon import TelegramClient, connection client = TelegramClient( "session", API_ID, API_HASH, connection=connection.ConnectionTcpMTProxyRandomizedIntermediate, proxy=("proxy.example.com", 443, "секрет"), )

Нужен ли прокси вообще

Если бот работает на сервере в дата-центре за рубежом, прокси чаще всего не нужен вовсе: проще перенести бота туда, чем гонять запросы через посредника. Прокси имеет смысл для локальной разработки и серверов, где api.telegram.org недоступен.

FAQ

Можно ли использовать MTProto-прокси для aiogram?
Нет. aiogram работает через Bot API по HTTPS, а MTProto-прокси понимает только протокол приложений Telegram. Нужен HTTP- или SOCKS5-прокси.
Где взять MTProto-прокси для Telethon?
В этом каталоге — берите No-Mask и DD-Mask, EE-Mask Telethon не умеет. Для автоматизации есть <a href="/api-proxy-telegram">API каталога</a> и пример <a href="/avtosmena-proxy-telethon">автосмены прокси</a>.
Нужен ли прокси для webhook?
Для входящих обновлений — нет: Telegram сам отправляет запросы на ваш сервер. Прокси может понадобиться только для исходящих запросов бота к api.telegram.org.