Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 оценок, среднее: 5,00 из 5)
Загрузка...

Чат-бот Telegram и QlikView Qlik Sense. Интеграция через PHP

Чат бот телеграм


В этой статье я расскажу как создавать закрытый Telegram-канал, в который будут приходить важные оповещения. Плюс расскажу, как можно получать данные из QlikView и Qlik Sense с помощью чат-бота, которому Вы например пишите что хотите получить. Например, «Продажи за вчерашний день по Москве». И система Вам автоматически присылает отчет — картинку или Excel-файл.

Чат-бот Telegram и QlikView Qlik Sense. Интеграция через PHP

Статья будет писаться постепенно и кусками. Подписывайтесь на мой Telegram-канал https://t.me/qlik_insight, чтобы не пропустить новую литературу по QlikView и Qlik Sense, а также самые «мощные», с технологической точки зрения, статьи.
Структура статьи будет выглядеть примерно так:

  1. Создание системы уведомлений в закрытом телеграм-канале (telegram канал, робот, отправка сообщений);
  2. Создание простого чат-бота (раскрою структуру приема и отправки сообщений);
  3. Создание команды для получения данных из приложения QlikView (с помощью API);
  4. Создание команды для получения данных из приложения Qlik Sense (с помощью API).

Создание системы уведомлений в закрытом Telegram-канале с применением QlikView или Qlik Sense

Процедура отправки сообщений в Telegram канал довольно простая. Нужно выполнить несколько действий, после которых станет доступным «интерфейс» отправки текстовых сообщений в телеграм-канал.

Краткий обзор шагов:

  1. Создать Telegram-канал;
  2. Создать бота;
  3. Получить все необходимые параметры объектов;
  4. Собрать URL-строку;
  5. Отправить в браузере сообщение (тестирование);
  6. Отправить сообщение из скрипта QlikView.

А теперь пройдемся более подробнее по шагам.

Шаг 1 — создаем закрытый телеграм-канал

Заходим в мобильное приложение Telegram и создаем закрытый телеграм-канал (все как на картинках). 

Нажимаем «New Channel»:
Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Заполняем наименование канала и его описание:

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Выбираем «Private Channel», чтобы в канал можно было зайти только по ссылке:

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Закрытый телеграм создан:

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Для Telegram канала выбираем фотографию:

Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense
Должен получиться вот такой вот закрытый Telegram-канал, в который мы будем посылать сообщения через чат-бота.
Создание закрытого телеграм канала для получения уведомлений по QlikView и Qlik Sense

Шаг 2 — регистрируем чат-бота

Далее нам необходимо создать чат-бота. Для этих целей внутри самого Telegram есть системный чат-бот BotFather:

  • https://telegram.me/BotFather — BotFather (@BotFather) — «Отец» всех Чат-ботов в телеграм. Через него можно зарегистрировать и настроить своего чат бота. Пишем команду /help:
    Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

Чат-бот пришлет вариации команд, в том числе /newbot для создания бота. Выбираем эту команду:

Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

BotFather предлагает ввести имя нашего бота (то, которое будет отображаться, можно на кириллице):

Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

Далее нам необходимо ввести USERNAME Бота, которое должно оканчиваться на bot:

Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

Если имя занято, то BotFather предложит сделать попытку снова (пока не попадется свободный username):

Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

Кликаем на наш бот и нажимаем START:

Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

/start — это название команды. В дальнейшем в бот можно ввести список команд и каждой команде на стороне backend (на сервере) задать последовательность тех или иных действий.

Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

При регистрации бота команда /start пустая:

Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

Помните, чат бот BotFather выдал нам token? Это ключевая строка, без которой мы не сможем взаимодействовать с ботом. Скопируйте ее себе куда-нибудь. Если вдруг потеряете, то всегда сможете вернуться к BotFather и попросить прислать его токен снова.

Регистрация бота через телеграм-бота @BotFather (мобильное приложение или веб-приложение).

Шаг 3 — Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Чтобы бот смог присылать сообщения в телеграм-канал, его необходимо добавить в администраторы канала. Заходим в настройки канала и кликаем на Administrators:

Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Add Administrator — выбираем пункт «Добавить администратора»

Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Далее через @ пишем username бота:

Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Все — бот добавлен в качестве администратора в закрытый Telegram канал:

Добавляем бота в качестве администратора в Telegram-канале (через мобильное приложение)

Шаг 4 — Получаем ID закрытого телеграм-канала для отправки сообщений через чат-бот и структура ссылки

У публичного телеграм канала chat_id начинается с @. А у приватного все немного сложнее. Заходим в наш телеграм канал, смотрим на адресную строку в браузере:

Получаем chat_id Для приватного телеграм-канала

Для приватного телеграм канала необходимо взять цифры без буквы «c» и до знака «_». И добавить префикс -100.

https://api.telegram.org/bot######################/sendMessage?chat_id=-100######################&text=Текст сообщения без каких либо кавычек (пробелы допускаются, некоторые знаки запрещены, о них позже)

Т.е. структура ссылки к API Telegram выглядит следующим образом:

Шаг 5 — Отправляем сообщение в telegram-канал через адресную строку в браузере

Берем сконструированный URL и вставляем в адресную строку браузера и нажимаем Enter. ВУАЛЯ:

Должны получить статус OK: TRUE

Переходим в телеграм канал и видим наше сообщение!  🙂

Шаг 6 — Отправляем сообщение в telegram-канал из QlikView 12

Теперь отправим простое сообщение из QlikView Script. Копируем наш URL, переходим в приложение QlikView 12 и выбираем Web Files:

Отправляем сообщение в telegram-канал из QlikView 12

Вбиваем наш URL:

Отправляем сообщение в telegram-канал из QlikView 12

Получаем строку. Эта строка будет каждый раз разная, но для начала мы формируем структуру запроса:

Отправляем сообщение в telegram-канал из QlikView 12

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

Загружаем скрипт:

В чат пришли два сообщения — первое, которое пришло после создания структуры скрипта, а второе после перезагрузки скрипта.

Отправляем сообщение в telegram-канал из QlikView 12

Специальные символы для текстовой строки (перенос строки и т.д.)

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

  • %0A — символ переноса строки;
  • — …

Вне контура Qlik: отправка сообщения через PHP в телеграм-канал

Токен и chatID неправильный (исправил символы).


Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 оценок, среднее: 5,00 из 5)
Загрузка...

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *