Бот для Telegram


Боты Telegram — это специальные аккаунты, для настройки которых не требуется дополнительный номер телефона. Пользователи могут взаимодействовать с ботами двумя способами:

  • Отправлять сообщения и команды ботам, открывая с ними чат или добавляя их в группы.
  • Отправлять запросы прямо из поля ввода, вводя @username бота и запрос. Это позволяет отправлять контент из встроенных ботов напрямую в любой чат, группу или канал.

Сообщения, команды и запросы, отправленные пользователями, передаются скрипту, работающему на сервере бота, при этом все шифрование и связь с Telegram API обеспечивают серверы Telegram.

1. Создание бота в Telegram

Бот в Telegram создается при помощи другого бота BotFather. Создаваемому боту необходимо задать имя и логин, который должен быть уникальными, поэтому подобрать логин следует предварительно, пользуясь поиском Telegram:

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

Назначаем картинку…

2. Связь Telegram с ботом

Активный бот получает все сообщения своего чата, групп и каналов от сервера Telegram. Для этого сервер Telegram для каждого нового сообщения выполняет веб-запрос по назначенному url, в содержании которого находится сообщение и его свойства. Назначенный для этого url называется Webhook.

Чтобы бот мог отвечать на сообщения, необходимо создать скрипт с алгоритмом анализа входящих сообщений и синтеза ответов, разместить этот скрипт в файле на своем веб-сервере, и назначить url этого файла боту.

Для назначения или отмены Webhook необходимо использовать метод setWebhook в url по шаблону, в который необходимо внести token и webhook:

Выполнить это можно в браузере, например:

Если быть точным, строку запроса следует подвергнуть процентному кодированию для исключения зарезервированных символов, но в большинстве случаев можно обойтись и без такого кодирования:

Результатом успешной установки Webhook методом setWebhook будет json:

Отмена назначенного Webhook выполняется аналогичным url, в котором необходим только token:

Результатом успешной отмены Webhook методом setWebhook будет json:

Для выполнения установки webhook можно использовать php-скрипт, размещенный в файле на веб-сервере:

3.

Сообщения направленные в чат бота, Сходно с тем, как пользователи получают Алгоритм бота может быть реализован любыми средствами, доступными для !!!

3. Подключение бота к каналам Telegram

Любой пользователь может начать диалог с ботом, как с другим пользователем, для этого он должен найти его по имени. Для того чтобы бот мог взаимодействовать с аудиторией канала, его нужно добавить к каналу, самостоятельно бот это сделать не может. Добавленный в канал, бот может выполнять функции администратора, для этого бота надо сделать администратором.

3. Публикация сообщений через бота

Публикация сообщений от имени бота осуществляется через API. Осуществляется это через web-запрос по url, содержащий токен бота, методом POST, тип контента: application/json:

Контент должен содержать текст с json-запись, где ключ chat_id определяет значение целевого канала, а ключ text – содержание сообщения:

// содержание сообщения…

4. //

//

Источники

  • Telegram — кроссплатформенная система мгновенного обмена сообщениями (мессенджер) //ru.wikipedia.org
  • Bots: An introduction for developers //core.telegram.org/bots
  •  Пример связи 1С и мессенджера Telegram. Получение данных из 1С запросом из Telegram //infostart.ru
  • Телеграм бот. Отчеты на мобильном устройстве без изменения конфигурации (Telegram bot) //infostart.ru

Leave a Reply