Как создать бота в Телеграмме?
24 июня 2015 года социальная сеть Телеграмм предоставила возможность программирования ботов. Бот в Телеграм представляет собой программное приложение, которое запускается со стороны пользователя и связывается с Telegram Bot API. Программный интерфейс несложен: бот выходит на связь с нужным URL, ответ Телеграмм представляет собой JSON объект. В статье показан пример создания типичного бота.
Первый этап – регистрация
В первую очередь необходимо обратиться к @BotFather и с помощью него пройти регистрацию бота и получить ID. Этот ID будет также и токеном. Алгоритм общения с ботом следующий:
- Отправить ему сообщение /start. В результате придет перечень дальнейших команд.
- Написать команду /newbot.
- Придумать название для бота. Возможны любые комбинации, но окончание должно быть bot.
- Если название, прошло, то придет ссылка для внесения бота в контакты и его токен.
- Рекомендуется проверить правильность токена по адресу api.telegram.org/bot<TOKEN>/getMe
После этих действий появляется возможность поставить на бота картинку, придумать приветствие и описание.
Программный код
Далее будет рассмотрен этап о том, как создать бота в Телеграмм на Python3. Язык программирования универсальный, поэтому схему можно перенести и на другой язык. В качестве помощника выбран редактор tornado.web. Для того, чтобы не выгружать отдельные сообщения необходимо поставить webHook.
Основа бота:
На этом моменте нужно снова включить возможность ручной выгрузки.
Где CMD означает список возможных команд, send_reply опция для отправки ответа.
Структура send_reply следующая:
Командная схема
Первые две команды бота будут /start и /help:
Код message[‘from’] предоставляет боту сведения о собеседнике (имя и ID). Для ответа нужно ввести комбинацию message[‘chat’][‘id’]. При этом в приватной переписке отражается имя собеседника, а в чате – идентификатор чата.
Для отражения данных бота используется /start без параметров. И напротив, при распознавании – с параметрами. Последний вариант используется, когда необходима авторизация.
Продолжаем:
Где /base64 – произвольная команда.
При этом @BotFather нужно сообщить перечень принимаемых команд. Это необходимо для использования бота в мобильной версии Телеграм. Сделаем так, что при введении знака слэш /, будет показан перечень всех команд бота.
Дополнительные возможности
Благодаря тому, что все конструкции включают знак /, есть возможность научить бота паре слов. Однако такое будет реализовано только в приватной переписке.
@BotFather нужно передать фразу /setprivacy. Это выключит приватность.
В Handler нужно добавить обработчика:
Добавление речи:
Где 75 – это эмпирическая постоянная, а format_map служит для однотипных строк.
В итоге бот научился приветствовать и называть имя собеседника.
Мультимедиа
Далее научим бота отправлять картинки, музыку, стикеры. Добавим это в RESPONSES:
Так как в элементе Message уже стикеры, то нужно модернизировать send_reply:
В итоге, на вопрос о времени, будет выслан стикер.
Потенциал ботов
Скорость и практичность ботов позволят автоматизировать многие действия. С помощью них можно создавать конкурсы и состязания по выполнению различных задач.
Ограничение на Вебхук
Вебхук работает исключительно с SSL-сертификатом и на https. Для решения этой проблемы нужно сделать Puller, который будет выгружать обновления и отправлять их на внутренний IP адрес:
Еще одно решение этой ситуации – размещение бота на heroku. Защита будет от собственного сертификата heroku.
Благодаря вышеизложенной информации, теперь каждый может создать собственного бота в Телеграм.