Уведомления в Loginom при помощи чат-бота Telegram

При реализации проектов часто возникает потребность в механизме уведомлений о том или ином событии. Например, о завершении загрузки данных в хранилище или о возникновении отклонений в ходе выполнения какого-либо процесса. Получив уведомление, аналитик сможет учитывать полученную информацию для дальнейшей работы. Один из способов реализации механизма уведомлений в платформе Loginom — отправка сообщений при помощи чат-бота Telegram.

В данном демопримере описан алгоритм работы с чат-ботом Telegram: создание бота, создание группы в Telegram и назначение бота администиратором группы. Показан механизм работы уведомлений на примере сценария: импорта данных, их обработки и экспорта данных в Excel.

Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.

Запустить демо

Установить локально

Начальная подготовка

Подготовка в Telegram
  1. В Telegram необходимо найти BotFather.

    Бот для создания ботов

  2. Написать команду в чат бот /newbot и задать название нового бота и уникальное имя (username), которое обязательно должно заканчиваться на «_bot».

    Название бота — LoginomTest, уникальное имя (username) — loginom_help_bot

  3. Необходимо сохранить токен, указанный в сообщении. В данном случае это 5********5:A*********************************M. Он потребуется на следующих этапах.

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

  4. После создания чат-бота необходимо Cоздать группу, добавить в неё бота и тех пользователей, которые должны получать оповещения.

  5. Необходимо выдать боту роль администратора группы.

  6. Далее необходимо отправить любое сообщение в эту группу, например, «Hello bot», и набрать в браузере строку следующего вида:

    https://api.telegram.org/botТОКЕН/getUpdates.

    В данном примере это строка:

    https://api.telegram.org/bot5********5:A**********************************M/getUpdates.

  7. В результате будет получен ответ:

    {"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. Пример сценария

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

а) Импорт таблицы

Таблица Классификация клиентов.

Имя Метка
 class Класс
 idclient Код Клиента
 idquarter Квартал
б) Обработка данных

На данном этапе аналитик может реализовать свой вариант обработки данных. В демопримере с помощью узла Фильтр строк выделяется срез данных за заданный интервал.

Настройки узла Фильтр по кварталам произведены следующим образом:

  • Поле — Квартал
  • Условие — в интервале
  • Нижняя граница — 01.01.2016, 00:00
  • Верхняя граница — 01.10.2016, 00:00
в) Экспорт полученных данных в Excel файл

Отфильтрованные данные выгружаются в Excel файл.

По завершении экспорта Telegram-bot пришлет уведомление.

2. Оповещение с помощью Telegram-bot

Демонстрирует вариант отправки уведомления в Telegram.

Отправка REST-запроса в Telegram-bot

На вход Подмодели Telegram-bot передаются переменные: token, chat_id, полученные в пункте Начальная подготовка, и message_text, которую необходимо сформулировать самостоятельно.

Входной порт переменных в подмодели Telegram-bot:

Имя Метка Значение
 token Tокен 5********5:A*********************************M
 chat_id Идентификатор чата -6*******6
 message_text Текст в мессенджере Загрузка прошла успешно

Алгоритм работы узла-подмодели Telegram-bot:

а) Калькулятор(переменные)

С помощью узла Калькулятор(переменные) формируются две переменные: адрес в виде URL-сервиса и текст с идентификатором чата — Текст в чат.

б) REST-сервис

URL-сервис подается на вход REST-сервиса, где в настройках отмечено подключение через переменную.

в) Переменные в таблицу

Узел Переменные в таблицу принимает на вход Текст в чат и выбирается вариант В столбцы.

г) REST-запрос

На вход узла REST-запрос отправляются настроенное подключение в REST-сервисе и результат обработки Переменные в таблицу.

В случае успешного завершения сценария в чате появится сообщение от бота «Загрузка прошла успешно» или то сообщение, которое будет внесено в переменную message_text.

Сообщение от бота
Рисунок 1. Сообщение от бота

Особенности настройки и ограничения:

  • Если явно не указывать последовательность выполнения, то отправка сообщения в чат будет осуществлена вне зависимости от того, завершится выгрузка в Excel или нет. Для задания очередности запуска узлов необходимо воспользоваться Портами порядка выполнения. В подмодели Пример сценария узел Клиенты.xlsx соединяем с выходным портом порядка выполнения подмодели. А затем соединяем обе подмодели между собой с помощью этих портов. В результате запрос будет отправлен только в случае, если завершится выгрузка в файл.

  • Запрос к чат-боту будет отправляться с того компьютера, на котором выполняется сценарий, т.е. либо с рабочей станции, где установлен Loginom Desktop, либо с Loginom Server. Необходимо, чтобы на этой машине были открыты соответствующие порты и отсутствовали какие-либо другие ограничения на отправку REST-запросов.

  • На работу чат-бота накладываются ограничения, например, не более одного сообщения в секунду и не более 20 сообщений в минуту в одну и ту же группу. Подробнее об ограничениях можно почитать в Bots FAQ.


Отправка текстового файла при помощи чат-бота в Telegram (JavaScript)

Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно

Скачать демопример

Минимальные требования к системе:

  • Операционная система: Windows 10 и выше
  • CPU x64: 2 core 1
  • Оперативная память: 4 GB
  • Жесткий диск: 10 GB

1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2, POPCNT.

Новости, материалы по аналитике, кейсы применения, активное сообщество