Главная / Помощь / Как создать бота

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

Как создать бота в Телеграмм? В нашей статье ты найдешь все, чтобы у тебя получилось создать бота для Telegram без особого труда. Теперь каждый может (если знает) как создать бота телеграмм. Разработчики сделали общедоступной данную платформу.

Симулятор собеседника Telegram — это программа, которая запускается и работает на вашей стороне. Она посылает запросы к АПИ Telegram Bot, который является достаточно простым:

  • Программа обращается к установленным параметрам по ссылке;
  • Телеграмм отвечает JSON массивом.

Чтобы понять принцип работы Telegram API, нужно попробовать создать элементарного бота в Телеграмм.

Регистрация

До того как создать бота телеграмм, нужно сделать новую учетную запись для программы Telegram и получить присвоенный ей ID, который является также токеном. В Телеграмм помощь при такой регистрации оказывает виртуальный помощник @BotFather.

Делается это так:

  1. Боту следует написать инструкцию /start.
  2. В ответ он пришлет список всех своих команд.
  3. Далее нужно отправить установку /newbot.
  4. @BotFather предлагает придумать новое имя. Оно должно заканчиваться словом «bot».
  5. Если все сделано правильно, помощник присылает токен нового виртуального пользователя и url для добавления его в список контактов.

Полученную комбинацию желательно протестировать этой ссылкой: api.telegram.org/bot/getMe.

Процесс программирования

В данной статье рассказывается, как создать бота телеграмм на Python3, но все алгоритмы можно перенести на любой язык.

В Telegram есть возможность вместо выгрузки сообщений вручную установить вебхук, чтобы они присылали каждое письмо сами. Для создания Telegram бота на Python лучше воспользоваться каким-нибудь реактором, например, tornado.web.

Костяк программы:

Костяк программы

Перед тем как создать бота телеграмм и запустить его, нужно установить webhook на нужный адрес и отловить выходной сигнал. Это делается для того, чтобы возвратить поведение с выгрузкой событий вручную.

Логика будет находиться в классе tornado.web.RequestHandler, который реактор принимает для обработки запросов.

класс tornado.web.RequestHandler, который реактор принимает для обработки запросов

CMD обозначает словарь всех доступных команд. Send_reply – это функция отправления ответа. Она принимает готовый массив Message.

Код вот:

CMD команды

Команды

Сначала следует научить программу бота в Telegram константам /start и /help:

Учим программу константам /start и /help

Объект message[‘from’] является массивом типа User. От него бот получает данные пользователя, его ID и имя. Будет лучше, если функция ответов будет принадлежать message[‘chat’][‘id’]. Так при общении там будет User, а в случае чата – id последнего.

Установке /start отводится сразу две функции:

• команда без параметров нужна для вывода данных о боте;
• с параметрами – для идентификации.

Есть смысл применять ее для требующих авторизации действий.

Теперь вы можете создать любое собственное задание. К примеру, /base64.

Создание /base64

Для тех, кто пользуется мобильным Telegram, будет полезно дать @BotFather перечень команд, которые должен принимать новый виртуальный собеседник:

Для мобильных Telegram перечень команд

Если пользователь Телеграмм захочет увидеть перечень доступных заданий (например, чтобы узнать, как убить программу после выполнения задачи), ему нужно будет написать «/».

Как научить бота говорить

Телеграмм присылает полностью все сообщение. Ограничение на необходимость ставить перед командами слеш создано только для удобства пользователей. Это позволяет научить программу отвечать по-человечески. Для того чтобы дать ей возможность получать в группах все сообщения, нужно написать /setprivacy помощнику @BotFather, отключая, таким образом, приватность.

В Handler следует добавить обработчик:

Handler добавляем обработчик

В список команд нужно включить речь:

В список команд включаем речь

Значение 75 здесь отображает вероятность того, что хочет сказать пользователь. Константа format_map удобна для описания требующих подстановки строк.

Так бот сможет отвечать на приветствия и обращаться к собеседнику по имени.

Отсылаемые сообщения могут быть не только текстовыми

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

Например, можно расширить словарь RESPONSES так:

Расширием словарь RESPONSES

И будем ловить сообщения:

Ловим сообщения

Теперь объект Message не включает в себя текст, поэтому нужно изменить send_reply:

Объект Message не включает в себя текст, поэтому меняем send_reply

Так робот будет иногда присылать картинку вместо времени:

Отправка картинки со временем

Как видите, создать виртуального собеседника Telegram и научить его общаться совсем не сложно. Удалить его можно в любое время другой командой, посылаемой @BotFather.

Спасибо статье: https://habrahabr.ru/post/262247/

Поделиться с друзьями:

Задать вопрос
Ваш e-mail не будет опубликован.

*

code

  1. Михалыч

    вопрос по API:
    есть 2 бота, имеют вебхук с общим бэкендом.
    бэкенд должен понимать с какого из ботов пришел Запрос.
    — как получить имя бота (не нашел такой Message атрибут)
    — как с бэкенда управлять параметрами ботов (напр. заменить /setdescription )