Обработчики
Вводная
Команда в Телеграме это текст, который начинается с символа /, например /menu. Если такая команда встречается в тексте,
на неё можно нажать и ваш бот получит сигнал о том, что пользователь выбрал какую-то команду. Отправить команду в чат
пользователь может 3 способами:
- Набрать текст команды вручную
- Нажать на команду в тексте переписки, если есть
- Выбрать в Меню команд Telegram.
Важно понимать
Создание команд в BotFather (типа /start) лишь добавляет их в интерфейс Telegram. Чтобы бот выполнял какие-либо действия при нажатии на них, необходимо настроить логику внутри самого бота.
В EnotPro привязка команд к действиям происходит через Обработчики
Команды в botfather
Телеграм позволяет создавать до 100 команд публичных команд для бота через @botfather
Правила создания команд в botfather
- Команда должна начинаться с символа косой черты
«/» - Команда не может быть длиннее 32 символов
- Команды могут состоять из букв строчного латинского алфавита, цифр и подчёркивания.
- Команды не поддерживают заглавные буквы.
- Описание поддерживает заглавные, строчные буквы, а так же эмодзи.
Примеры правильных команд
- commandmode - ОпиСаНие
- co111andmode - описание
- command_mode - описание
Обработчики в EnotPro
Обработчики в EnotPro это комплекс, состоящий из реакций (действий) и условий дляих выполнения.
- Условие - это текст/команда/регулярное выражение или любая другая сущность, на которую бот будет реагировать после получения события
- Реакция - это заранее настроенное действие, или набор действий, которые бот выполнит, при выполнении условия срабатывании.
Таким образом, вы создаете в EnotPro команду, у каждой команды есть свой триггер, в триггере вы указываете список реакций, которые необходимо выполнить при выполнении команды. Например, можно в ответ пользователю прислать какой-то текст, контент или предложить заполнить форму. Создаются команды EnotPro в соответствующем разделе меню - Обработчики
Обработчики имеют довольно широкий спектр типов срабатываний.
Рассмотрим все более детально.
Типы
| Тип | Описание |
|---|---|
| Команды | Текстовые команды отправляемые пользователями в чате |
| Вход/выход | События входе или выходе пользователя |
| Системные сообщения | Системные сообщения отправляемые в чат |
| Вложения | Любые типы медиа отправляемые в чатах |
Команды
Команды - текстовые сообщения отправляемые пользователями Телеграма в чатах.
Поддерживаются следующие типы обработчиков команд:
Команда
Сообщения начинающиеся со слэша (/).
Особенности
Независимо от настроек конфиденциальности бота в BotFather, боты все равно получают команды от пользователей из групповых чатов
Текст
Любые текстовые сообщения отправляемые пользователями в любом чате и канале.
Регулярные выражения
Обработчик позволяет создать и настроить свои регулярные задачи.
Подробнее о регулярных выражениях: Регулярные выражения
Проверить свои регулярные выражения: regex101
Примеры регулярных выражений: Примеры
Вход-выход
Обработчик отслеживает события вступления и выходы пользователей в группах и каналах
Особенности
Для корректной работы обработчика, бот обязательно должен быть администратором.
Системные-сообщения
Системные сообщения - сообщения автоматически публикуемые в чатах при выполнении определенных условий.
Поддерживаются следующие типы системных сообщений:
| Тип | Описание |
|---|---|
| LeftChatMember | пользователь вышел |
| NewChatMembers | участник вступил |
| NewChatPhoto | установлена новая фото чата |
| DeleteChatPhoto | удалена фото чата |
| NewChatTitle | изменено название чата |
| PinnedMessage | закреплено сообщение |
| MessageAutoDeleteTimerChanged | изменился таймер удаления |
| VideoChatStarted | начался видеозвонок |
| VideoChatEnded | завершился видеозвонок |
| VideoChatParticipantsInvited | приглашены участники видеозвонка |
| VideoChatScheduled | видеозвонок запланирован |
| ForumTopicCreated | создана тема форума |
| ForumTopicClosed | тема форума закрыта |
| ForumTopicEdited | тема форума изменена |
| ForumTopicReopened | тема форума открыта |
| ChatBoost | чат усилен (буст) |
| RemovedChatBoost | усиление чата снято |
Вложения
Вложения - файлы которые можно отправлять в Телеграме.
Поддерживаются следующие типы файлов:
| Тип | Описание |
|---|---|
| Photo | изображение |
| Video | видео |
| Audio | музыка |
| Voice | голосовое сообщение |
| VideoNote | кружок-видеосообщение |
| Story | история (сторис) |
| Sticker | стикер |
| Document | файл, документ |
| Animation | GIF-анимация |
| Contact | контакт (визитка) |
| Dice | игральная кость (рандом) |
| Game | облачная игра |
| Location | геолокация |
| Venue | место, заведение |
Настройки команд
По умолчанию бот обрабатывает все команды в порядке их создания, начиная с первой созданной. Такую последовательность обработки команд можно изменить, указав в настройках команды Приоритет проверки.
Интерфейс позволяющий настраивать поведение команд
| Функция | Описание |
|---|---|
| Команда | Функция отвечает за редактирование сущности команды. |
| Описание | Добавление описания для команды. Полезная функция, когда обработчик в виде регулярного выражения и сложно запомнить о чем регулярное выражение. |
| Продолжить | Определяет, сколько команд будет выполнено. По умолчанию только первая по условию. Важно прочитать |
| Приоритет | Задает приоритет порядку обработки команд. Важно прочитать |
| Задействовать в привате | Реагирование обработчиков в личном чате с ботом |
| Задействовать в чате | Реагирование обработчиков в в групповых чатах |
| Задействовать в каналах | Реагирование обработчиков в каналах |
| Игнорировать регистр | команда будет игнорировать регистр и одинаково реагировать команды с различным регистром, например: привет, ПРИвет, ПрИвет, ПРИВЕТ. |
Приоритет
Приоритет проверки изменяет последовательность обработки команд в боте. Сначала обработаются команды с установленным положительным значением Приоритета проверки, затем с нулевым значением в порядке их создания и после с отрицательным значением Приоритета проверки.
ВАЖНО
- При создании команды Приоритет проверки имеет значение равное нулю.
- Чем больше число установленное в параметре: Приоритет проверке, тем раньше будет обработана команда.
- В параметре допускаются отрицательные значения.
- При обработке команд ботом, будет выполнена та команда, которая соответствует условиям для выполнения команды.
- Следующие команды не будут обработаны, если в настройках выполняемой команды не установлен параметр: Продолжить.
Продолжить
Включенный в команде параметр Продолжить в случае выполнения команды не остановит процесс обработки команд в боте, а позволит продолжить его.
ВАЖНО
Включенный в команде параметр Продолжить позволит выполнить несколько команд бота, в случае совпадении условий для их выполнения.