Чем 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 API | Telegram API |
---|---|---|
Получение сообщений | Только из апдейтов | Из апдейтов и по ID сообщений |
Получение пользователей | Только из апдейтов | Из апдейтов и по ID (если бот «видел» пользователя) и по юзернейму (200 раз в сутки) |
Размер файлов | ↓ 20 МБ, ↑ 50 МБ (Если нет локального сервера) | Как для обычных пользователей |
Получение списка участников группы | Невозможно | Возможно |
Получение старых апдейтов | Невозможно | Возможно |
Запуск нескольких программ с одним ботом | Только если остальные программы на Telegram API | Возможно |
В Telegram API ограничено можно получить старые апдейты. Это полезно, например, чтобы получить список пользователей бота, если он не сохранялся или база данных была утеряна.
Юзерботы
Раз Telegram API открыт, и под него даже есть всякие библиотеки, — значит, вы легко можете написать программу, управляющую не ботом, а аккаунтом пользователя.
В народе такую программу называют юзерботом.
Кто-то пишет юзерботов, чтобы каждую минуту ставить текущее время себе на аватарку, кто-то — чтобы сохранять сообщения из публичных групп и каналов.
В общем, с помощью юзерботов можно делать любые действия с Телеграм-аккаунтами, которые нельзя сделать с помощью ботов.
WARNING
Телеграм обычно не банит за использование юзерботов, но будьте осторожны: за спам аккаунт могут ограничить или удалить.