Bot API или MTProto: Telethon, Pyrogram и риски юзерботов
Продвинутое4 минРедакция Innovialabs
Коротко
Для бизнес-ботов почти всегда достаточно Bot API; локальный Bot API сервер или MTProto от имени бота нужны для больших файлов, а юзерботы на личном аккаунте оправданы редко и несут риск бана и нарушения правил Telegram.
Короткий ответ
- Bot API — HTTP-интерфейс для ботов, который поддерживает сам Telegram. Подходит для подавляющего большинства задач: поддержка, продажи, уведомления, Mini Apps, платежи.
- MTProto — родной протокол Telegram, на котором работают официальные клиенты. Через библиотеки вроде Telethon или Pyrogram можно работать как от имени бота, так и от имени обычного пользователя (юзербот).
- Юзербот — автоматизация личного аккаунта. Даёт больше возможностей, но несёт риск блокировки и нарушения условий использования API.
Сравнение
| Bot API | MTProto от имени бота | MTProto юзербот | |
|---|---|---|---|
| Вход | Токен бота | Токен бота + api_id/api_hash | Номер телефона + код |
| Транспорт | HTTPS к серверам Telegram | Собственное соединение | Собственное соединение |
| Видит сообщения | Только адресованные боту | Как бот | Всё, что видит аккаунт |
| Ограничения по файлам | Есть, у облачного Bot API | Существенно мягче | Как у клиента |
| Сложность | Низкая | Средняя | Средняя |
| Риск бана | Минимальный при соблюдении правил | Минимальный | Заметный |
Важный нюанс: MTProto не означает юзербот. Telethon и Pyrogram умеют авторизоваться токеном бота. Вы получаете возможности протокола, оставаясь ботом с понятным статусом.
Когда Bot API достаточно
- Диалоги с клиентами, меню, формы, FSM.
- Уведомления и рассылки подписчикам бота.
- Mini Apps, Telegram Payments и Stars.
- Работа в группах и каналах, где бот добавлен администратором.
Если задача решается Bot API, оставайтесь на нём: его поддерживает Telegram, он стабилен и понятен любому разработчику.
Когда нужен локальный Bot API сервер
Telegram опубликовал исходный код сервера Bot API. Его можно запустить у себя и направлять запросы бота туда. Это тот же Bot API, но с другими возможностями:
- большие файлы: заметно выше лимиты загрузки и скачивания, чем у облачного Bot API;
- файлы доступны с локального диска без скачивания по HTTP;
- webhook можно отправлять на локальный адрес, по HTTP и на любой порт;
- больше параллельных соединений для webhook.
Цена — свой сервис, который нужно разворачивать, обновлять и мониторить. Для ботов, работающих с видео, архивами и документами, это обычно оправдано.
Когда оправдан MTProto
- Клиентские приложения: свой клиент Telegram или интеграция, где пользователь сознательно входит в свой аккаунт.
- Работа с файлами от имени бота, если локальный Bot API сервер почему-то не подходит.
- Автоматизация своего аккаунта в умеренных объёмах: архивация собственных чатов, экспорт, перенос данных.
- Аналитика собственных каналов, если нужных данных нет в Bot API и встроенной статистике.
Перед выбором библиотеки проверьте, поддерживается ли она сейчас. Оригинальный Pyrogram больше активно не развивается, сообщество использует форки. Telethon, TDLib и GramJS — другие распространённые варианты.
Риски юзерботов
Блокировка аккаунта. Telegram отслеживает подозрительную активность: массовые вступления в группы, рассылки незнакомым людям, частые однотипные действия, свежие номера с первого дня под автоматизацией. Последствия — от временных ограничений до удаления аккаунта.
Нарушение условий API. Условия использования Telegram API запрещают спам, накрутку подписчиков и просмотров, сбор данных пользователей без согласия и маскировку под официальные клиенты. Нарушение может привести к отзыву api_id.
Ошибки FLOOD_WAIT. Протокол прямо сообщает, сколько секунд ждать. Игнорирование таких ошибок — быстрый путь к ограничениям.
Безопасность сессии. Файл сессии или строка сессии — это полный доступ к аккаунту без пароля и кода. Его утечка равна краже аккаунта. Храните как секрет, не коммитьте в репозиторий.
Юридические вопросы. Сбор сообщений и контактов из чужих групп — это обработка персональных данных. Законы о персональных данных, включая местные, требуют законного основания и согласия.
Как выбрать
- Начните с Bot API.
- Упираетесь в размер файлов — локальный Bot API сервер.
- Нужны возможности протокола — MTProto от имени бота.
- Юзербот — только для своего аккаунта, умеренных объёмов и с пониманием рисков. Не стройте на нём бизнес-процесс, от которого зависят продажи.