View Categories

Создание бота

Базовая информация о ТГ ботах #

Телеграм-бот - виртуальный пользователь Телеграм, действиями которого можно управлять из программы, в данном случае - с Ардуины/ЕСПшки. Работает это довольно просто: программа отправляет запрос на сервер Телеграм, сервер отвечает результатом. Программа может как запросить непрочитанные сообщения, так и отправить сообщение от лица бота.

Регистрация бота #

  • Написать Бате https://t.me/BotFather
  • Открыть меню, выбрать команду /newbot
  • Отправить имя бота (потом его можно будет изменить)
  • Отправить никнейм бота: уникальное имя, оканчивающееся на bot. Изменить его будет нельзя
  • Готово! Батя выдаст вам токен бота - уникальный код, по которому и ведётся работа с ботом

Настройка бота #

  • Перейти в чат с BotFather, выбрать бота для редактирования
  • Webhook режим должен быть отключен (отключен по умолчанию, если не трогали - не трогайте), иначе esp не сможет принимать сообщения
  • Для того, чтобы бот читал все сообщения в группе (а не только /команды), нужно отключить параметр Group Privacy в настройках бота Bot Settings. Данный параметр включен по умолчанию
  • Для полноценной работы в группе (супергруппе) бота нужно сделать администратором в этой группе

Лимиты Telegram #

Телеграм устанавливает следующие лимиты на взаимодействие с ботом:

Отправка #

  • В личный чат: не чаще раза в секунду. Отправлять чаще можно, но сообщение может не дойти
  • В группу: не чаще 20 сообщений в минуту
  • Суммарный лимит: не чаще 30 сообщений в секунду
  • Бот не может писать в личку другому боту

Чтение #

  • Бот может читать и взаимодействовать с сообщениями (изменять, удалять), с момента отправки которых прошло не больше 24 часов
  • Бот не видит сообщения от других ботов в группе
  • Телеграм разделяет текст на несколько сообщений, если длина текста превышает ~4000 символов. Эти сообщения будут иметь разный messageID в чате
  • Нельзя опрашивать обновления одновременно с нескольких устройств: один бот - одна Ардуина/ЕСПшка. Отправлять команды с нескольких устройств - можно

Сообщения от себя #

Бот не видит, т.е. не получает апдейты на свои сообщения. Это ограничение можно обойти:

  • Создать частный канал, добавить туда бота, сделать админом
  • Создать частную группу, добавить туда бота, сделать админом
  • В настройках канала привязать группу к каналу как "обсуждение"

Теперь если бот напишет пост в канал - ему придёт апдейт с этим постом из группы (считается сообщением, которое переслал "юзер" Telegram). Таким образом можно передать боту информацию с одного сервера на другой через Телеграм (только в одну сторону). Можно настроить автоудаление постов, чтобы не забивать канал.

Сообщения от других ботов #

Бот не видит, т.е. не получает апдейты на сообщения других ботов. Это ограничение можно обойти:

  • Создать частный канал, добавить туда ботов, сделать админами
  • Отправить пост через бота
  • Все остальные боты получат апдейт с постом

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

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх