Понимание того, как работает Телеграм бот, пригодится при создании собственной программы (для личных целей или заработка). Впрочем, и тем, кто сталкивается с ботами, как пользователь, информация тоже может быть интересна.
Мы уже писали о том, что Телеграм-бот — это программа, которая выполняет определенные функции внутри мессенджера. При этом чат, который отображается в Телеграм, является лишь окном, через которое бот «общается» с пользователями.
Основная часть программы бота (ее «сердце и мозг») находится где-то на серверах разработчиков. Все рабочие процессы протекают именно там. Мессенджер просто принимает сигналы и возвращает ответы на них, позволяя пользователям взаимодействовать с ботом.
Принцип можно сравнить с работой телевизора. Устройство только показывает новости. При этом сами ведущие находятся где-то далеко в телестудии, как и съемочная группа. Там же происходит процесс съемки (далеко от человека, который смотрит телевизор).
Таким образом, процесс можно условно разделить на несколько этапов.
Именно так работает чат бот в Телеграме. Весь процесс занимает чаще всего доли секунды. Поэтому человеку кажется, что ответы программы поступают мгновенно. Создается ощущение, что общение с ботом происходит внутри Телеграм. Но на самом деле это не так.
Допустим, у вас есть бот-калькулятор. Пользователь спрашивает его «сколько будет 2*2». В самом Телеграме никаких расчетов не производится. Мессенджер отправляет вопрос на сервер владельца бота (он может находиться где угодно).
Программа, располагающаяся на сервере, получает запрос и обрабатывает его (считает, сколько будет 2*2). Закончив вычисления, она отправляет ответ на сервер Телеграм. Можно сказать, она обращается к мессенджеру: «этот пользователь спрашивал, сколько будет 2*2, передай ему, что получится 4».
Телеграм передает ответ пользователю, выступая посредником в общении между ним и ботом. Ответ отправляется в диалог, где человек может его увидеть. По такому принципу работают все чат боты в Телеграме.
Существует 2 сценария взаимодействия (общения) программы бота с Телеграмом.
Выражение Long Polling в переводе означает «длинные запросы». Это самый распространенный и простой способ взаимодействия бота с мессенджером. Поэтому им пользуется большинство начинающих разработчиков.
Принцип заключается в том, что программа, отвечающая за функционал бота, постоянно, несколько раз в секунду спрашивает Телеграм, не появилось ли каких-то запросов от пользователей. Если они поступили, мессенджер отвечает, уточняя, каким именно пользователям нужно ответить. При этом Телеграм сам никогда не пишет на сервер программы и ничего не докладывает.
Так как программа бота все делает сама, мессенджеру не нужно знать, где она находится. Это освобождает разработчиков от назначения отдельного IP-адреса для сервера (что позволяет экономить на платной услуге).
По такому принципу в Телеграме работают простые боты с небольшим количеством подписчиков. Минусом метода являются некоторые ограничения. Если людей, обращающихся к боту, становится очень много, программу приходится переделывать для работы по другой схеме.
Для ботов, работающих с большим количеством пользователей, подходит только более сложный сценарий взаимодействия с Телеграмом. Сейчас расскажем о нем.
Webhook — технически более сложный для разработчиков вариант. Этот способ взаимодействия бота с мессенджером требует определенной настройки сервера и получения для него уникального IP-адреса.
В этом случае бот сам не стучится в Телеграм и не спрашивает, поступили ли какие-то запросы от пользователей. При появлении запроса мессенджер сам сообщает об этом программе, отправляя данные на ее сервер (по указанному в настройках IP-адресу).
Webhook используется реже из-за своей сложности. Но большинство крупных Телеграм ботов с богатым функционалом работает именно по этому принципу.
Итак, теперь у вас есть общее представление о том, как работает бот в Телеграме. Читайте и другие наши статьи о создании ботов в данном мессенджере и заработке на них.