Skip to content

Чем Telegram API отличается от Bot API

Ботом управляет программа. Она связывается с серверами Телеграма, чтобы получать информацию (например, о сообщении, которое получил бот) и отдавать команды (например, ответить на сообщение). Давайте разберёмся, как это происходит.

MTProto API — он же Telegram API — это апи, через которое ваше приложение Телеграма на телефоне или компьютере связывается с серверами Телеграма. Он открыт: разработчики могут использовать его, чтобы создавать свои приложения для мессенджера.

Называется оно так потому, что основано на протоколе MTProto, который команда Телеграм и разработала.

Telegram Bot API — это отдельное апи поверх Telegram API, на котором могут работать только боты.

Оно было создано для того, чтобы разработчики могли писать ботов на обычных HTTP-запросах, не разбираясь в протоколе MTProto. Ещё в Bot API есть фичи для упрощения разработки: например, он может работать через вебхуки и автоматически размечать сообщения через HTML или Markdown.

Но вам это не нужно :⁠)

Скорее всего, вы не будете писать сырые HTTP-запросы, а будете использовать готовые библиотеки для разработки ботов. Такие библиотеки есть под многие языки программирования, и обычно в них есть всё, что вам понадобится для удобной работы.

Для разработки ботов вы можете использовать как библиотеки под Telegram API, так и библиотеки под Bot API.

Какой API выбрать?

Под Bot API написано гораздо больше библиотек.

С другой стороны, в Bot API больше ограничений. Например, через него нельзя загружать большие файлы или получать старые сообщения из истории чата.

О выборе библиотеки читайте на следующей странице.

Различия функционала Bot API и Telegram API
ФичаBot APITelegram API
Получение сообщенийТолько из апдейтовИз апдейтов и по ID сообщений
Получение пользователейТолько из апдейтовИз апдейтов и по ID (если бот «видел» пользователя) и по юзернейму (200 раз в сутки)
Размер файлов↓ 20 МБ, ↑ 50 МБ (Если нет локального сервера)Как для обычных пользователей
Получение списка участников группыНевозможноВозможно
Получение старых апдейтовНевозможноВозможно
Запуск нескольких программ с одним ботомТолько если остальные программы на Telegram APIВозможно

В Telegram API ограничено можно получить старые апдейты. Это полезно, например, чтобы получить список пользователей бота, если он не сохранялся или база данных была утеряна.

Юзерботы

Раз Telegram API открыт, и под него даже есть всякие библиотеки, — значит, вы легко можете написать программу, управляющую не ботом, а аккаунтом пользователя.

В народе такую программу называют юзерботом.

Кто-то пишет юзерботов, чтобы каждую минуту ставить текущее время себе на аватарку, кто-то — чтобы сохранять сообщения из публичных групп и каналов.

В общем, с помощью юзерботов можно делать любые действия с Телеграм-аккаунтами, которые нельзя сделать с помощью ботов.

WARNING

Телеграм обычно не банит за использование юзерботов, но будьте осторожны: за спам аккаунт могут ограничить или удалить.

Ссылки по теме