/Как создать бота в Telegram

Как создать бота в Telegram

Как создать бота в Телеграмме?

24 июня 2015 года социальная сеть Телеграмм предоставила возможность программирования ботов. Бот в Телеграм представляет собой программное приложение, которое запускается со стороны пользователя и связывается с Telegram Bot API. Программный интерфейс несложен: бот выходит на связь с нужным URL, ответ Телеграмм представляет собой JSON объект. В статье показан пример создания типичного бота.

Первый этап – регистрация

В первую очередь необходимо обратиться к @BotFather и с помощью него пройти регистрацию бота и получить ID. Этот ID будет также и токеном. Алгоритм общения с ботом следующий:

  1. Отправить ему сообщение /start. В результате придет перечень дальнейших команд.
  2. Написать команду /newbot.
  3. Придумать название для бота. Возможны любые комбинации, но окончание должно быть bot.
  4. Если название, прошло, то придет ссылка для внесения бота в контакты и его токен.
  5. Рекомендуется проверить правильность токена по адресу 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.

 

Благодаря вышеизложенной информации, теперь каждый может создать собственного бота в Телеграм.