Создание вашего первого Telegram бота
Знакомство с Telegram Bot API
Что такое бот?
Представьте, что у вас есть помощник, который работает 24/7 без перерывов и выходных. Он может выполнять рутинные задачи: отправлять новости, отвечать на вопросы, принимать заказы или просто развлекать. В Telegram такой помощник называется ботом.
По сути, бот — это компьютерная программа, которая живет не на вашем телефоне или компьютере, а на серверах Telegram. У него нет физического тела, только имя пользователя (которое всегда заканчивается на bot) и программный код, который диктует, как ему себя вести.
В отличие от обычного пользователя, бот не может сам начать разговор. Вы должны написать ему первым.
Как боты общаются? API
Чтобы управлять ботом, ваш код должен как-то общаться с серверами Telegram. Этот процесс похож на заказ еды в ресторане. Вы (ваш код) не можете просто зайти на кухню (серверы Telegram) и начать готовить. Вместо этого вы обращаетесь к официанту (API).
Вы делаете заказ (отправляете команду), официант передает его на кухню, а затем приносит вам готовое блюдо (ответ от сервера). Этот «официант» в мире программирования и называется API.
API
noun
Application Programming Interface, или интерфейс программирования приложений. Это набор правил и инструментов, который позволяет разным программам «общаться» друг с другом.
API предоставляет вашему коду набор готовых команд. Например, есть команда sendMessage, чтобы отправить сообщение, или sendPhoto, чтобы отправить картинку. Вам не нужно знать, как именно Telegram устроен внутри, — достаточно правильно «попросить» API, и он все сделает за вас.
Ключ от вашего бота: токен
Когда вы создаете бота, Telegram выдает вам уникальный ключ — токен. Это длинная строка из букв и цифр, которая служит одновременно логином и паролем для вашего бота. С помощью этого токена ваш код подтверждает, что имеет право управлять именно этим ботом.
Представьте, что токен — это ключ от сейфа, в котором лежит ваш бот. Если кто-то завладеет этим ключом, он сможет делать с вашим ботом все что угодно: отправлять сообщения от его имени, читать переписку и даже удалить его.
Никогда и никому не показывайте токен вашего бота! Это секретная информация.
Бот или человек?
Хотя боты и могут имитировать общение, они сильно отличаются от обычных пользователей Telegram. Основные различия собраны в таблице ниже.
| Характеристика | Обычный пользователь | Бот |
|---|---|---|
| Регистрация | Нужен номер телефона | Номер не нужен, создается через @BotFather |
| Имя пользователя | Любое | Всегда заканчивается на bot |
| Начало диалога | Может написать первым | Не может, ждет сообщения от пользователя |
| Память | Помнит историю чатов | «Забывает» все после перезапуска, если не сохранять данные |
| Хранение данных | На устройстве и в облаке | Только в облаке Telegram, у него нет своего телефона |
Как бот «слышит» сообщения
Итак, бот — это программа, которая ждет команд. Но как он узнает, что ему кто-то написал? Для этого используется механизм под названием Long Polling (длинный опрос).
Это похоже на то, как вы ждете важного звонка. Вместо того чтобы каждую секунду проверять телефон, вы просто держите его рядом и ждете, когда он зазвонит. Точно так же и бот:
- Он отправляет запрос на сервер Telegram: «Есть для меня новые сообщения?»
- Сервер не отвечает сразу «нет». Он удерживает этот запрос открытым и ждет.
- Как только пользователь отправляет боту сообщение, сервер тут же отдает его в ответ на ожидающий запрос.
- Бот обрабатывает сообщение и немедленно отправляет новый запрос «Есть что-нибудь еще?», снова переходя в режим ожидания.
Этот процесс позволяет получать обновления почти мгновенно, не нагружая при этом ни ваш код, ни серверы Telegram постоянными запросами.
Теперь, когда мы разобрались в теории, мы готовы к практике. В следующем разделе мы создадим нашего первого бота и получим тот самый секретный токен.
Что такое бот в Telegram с технической точки зрения?
В тексте API Telegram сравнивается с официантом. Какую функцию выполняет API в этой аналогии?