Уведомления в Loginom при помощи чат-бота Telegram
При реализации проектов часто возникает потребность в механизме уведомлений о том или ином событии. Например, о завершении загрузки данных в хранилище или о возникновении отклонений в ходе выполнения какого-либо процесса. Получив уведомление, аналитик сможет учитывать полученную информацию для дальнейшей работы. Один из способов реализации механизма уведомлений в платформе Loginom — отправка сообщений при помощи чат-бота Telegram.
В данном демопримере описан алгоритм работы с чат-ботом Telegram: создание бота, создание группы в Telegram и назначение бота администиратором группы. Показан механизм работы уведомлений на примере сценария: импорта данных, их обработки и экспорта данных в Excel.
Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.
Начальная подготовка
В Telegram необходимо найти BotFather и получить описание доступных команд.
Выбрать команду /newbot и задать название нового бота и уникальное имя (username), которое обязательно должно заканчиваться на «_bot».
Необходимо сохранить токен, указанный в сообщении. В данном случае это
5********5:A*********************************M
. Он потребуется на следующих этапах.Важно: Необходимо сохранять приватность токена. Его публикация дает любому человеку доступ к данным бота, отправке и прочтению сообщений.
После создания чат-бота необходимо Cоздать группу, добавить в неё бота и тех пользователей, которые должны получать оповещения.
Необходимо выдать боту роль администратора группы.
Далее необходимо отправить любое сообщение в эту группу, например, «Hello bot», и набрать в браузере строку следующего вида:
https://api.telegram.org/botТОКЕН/getUpdates
.В данном примере это строка:
https://api.telegram.org/bot5********5:A**********************************M/getUpdates
.В результате будет получен ответ:
{"ok":true,"result":[{"update_id":4*******5, "message":{"message_id":*,"from":{"id":2********0,... ... ...},"chat":{"id":-6*******6,"title": ... ... ... "all_members_are_administrators":true},"date":1********1,"text":"hello bot"}}]}
В ответе интересует код
-6*******6
— это идентификатор группы, куда будут отправляться оповещения. Его необходимо сохранить для последующего использования в сценариях.
Описание алгоритма
1. Импорт данных
Таблица «Классификация клиентов».
Имя | Метка |
---|---|
Class | Класс |
IDClient | Код Клиента |
IDQuarter | Квартал |
2. Обработка данных
На данном этапе аналитик может реализовать свой вариант обработки данных. В демопримере с помощью Фильтра строк выделяется срез данных за заданный интервал.
Настройки узла Фильтр по кварталам произведены следующим образом:
- Поле — Квартал.
- Условие — в интервале.
- Нижняя граница — 01.01.2016, 00:00.
- Верхняя граница — 01.10.2016, 00:00.
3. Выгрузка результата
Отфильтрованные данные выгружаются в «Excel файл»:
По завершении экспорта Telegram-bot пришлет уведомление.
4. Оповещение с помощью Telegram-bot
Для использования бота требуется получить токен и идентификатор группы, как было продемонстрировано выше, а также сформулировать текст уведомления.
Подмодель Telegram-bot принимает на вход 3 переменные: token
, chat_id
и message_text
.
Входной порт переменных в подмодели Telegram-bot:
Имя | Метка | Значение |
---|---|---|
token | Tокен | 5********5:A*********************************M |
chat_id | Идентификатор чата | -6*******6 |
message_text | Текст в мессенджере | Загрузка прошла успешно |
Алгоритм работы узла-подмодели Telegram-bot:
С помощью узла Калькулятор(переменные) формируются две переменные: адрес в виде URL-сервиса и текст с идентификатором чата — Текст в чат.
URL-сервис подается на вход REST-сервиса, где в настройках отмечено подключение через переменную.
Узел Переменные в таблицу принимает на вход Текст в чат и выбирается вариант «в столбцы».
На вход обработчика REST-запрос отправляются настроенное подключение в REST-сервисе и результат обработки Переменные в таблицу.
C помощью мастера настройки REST-запроса связывается поле Текст в чат с полем request/.
По умолчанию узлы в Loginom могут выполняться параллельно. Если явно не указывать последовательность выполнения, то отправка сообщения в чат будет осуществлена вне зависимости от того, завершится выгрузка в Excel или нет.
Для задания очередности запуска узлов Выгрузка результата и Telegram-bot нужно воспользоваться Портом порядка выполнения. В результате запрос будет отправлен только в случае, если завершится выгрузка в файл.
В случае успешного завершения сценария в чате появится сообщение от бота «Загрузка прошла успешно» или то сообщение, которое будет внесено в переменную message_text
.
Важно принимать во внимание следующее:
Запрос к чат-боту будет отправляться с того компьютера, на котором выполняется сценарий, т.е. либо с рабочей станции, где установлен Loginom Desktop, либо с Loginom Server. Необходимо, чтобы на этой машине были открыты соответствующие порты и отсутствовали какие-либо другие ограничения на отправку REST-запросов.
На работу чат-бота накладываются ограничения, например, не более одного сообщения в секунду и не более 20 сообщений в минуту в одну и ту же группу. Подробнее об ограничениях можно почитать в Bots FAQ.
Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно
Минимальные требования к системе:
- Операционная система: Windows 10 и выше
- CPU x64: 2 core 1
- Оперативная память: 4 GB
- Жесткий диск: 10 GB
1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2 (POPCNT, LZCNT).