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

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

Contents


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

qlikview

Чат-бот 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.

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

qlikview

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

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

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

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

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

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

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

qlikview

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

Создание закрытого телеграм канала для получения уведомлений по 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 (мобильное приложение или веб-приложение).

qlikview

Помните, чат бот 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 выглядит следующим образом:

qlikview

Шаг 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

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

qlikview

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

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

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

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

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

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

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

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

Последовательность разработки чат-бота для Telegram

Схема работы PHP, WebHook и Telegram

Webhook — механизм оповещения пользователей системы о событиях.
Схема работы php telegram webhook

qlikview

Как отправить сообщение пользователю через чат-бот Telegram?

Для того, чтобы отправить сообщение пользователю, необходимо выполнить несколько действий:

  1. Откройте чат с ботом и напишите ему произвольное сообщение
  2. Перейдите в браузере по ссылке https://api.telegram.org/bot<TelegramBotToken>/getUpdates, заменив на полученный токен от @BotFather
  3. В полученном json-ответе найдите значение в параметре result->message->chat->id, это и есть Ваш персональный
  4. Откройте браузер и перейдите по ссылке, заменив и на свои данные

https://api.telegram.org/bot<TelegramBotToken>/sendMessage?chat_id=&text=Первое сообщение в персональный чат с Chat Bot Telegram

Строка запуска WebHook (установка URL для WebHook Telegram Server)

https://api.telegram.org/bot281913351:CCccwsdCsdnt4SWd8OsdD1-GWavQCrgZGHk/setWebhook?url=https://domen.ru/telegram/bot.php

ВАЖНО — ДОМЕН ОБЯЗАТЕЛЬНО ДОЛЖЕН РАБОТАТЬ ЧЕРЕЗ HTTPS!!!!!!!!!!!!!!!!!

После того, как вобьете в строку браузера URL, должен поступить ответ от Telegram Сервера:

Если пришел другой ответ, то значит где-то ошибка.

qlikview

Ниже будет приведен код php скрипта с меню:

В файле bot.php лежит php скрипт обработки команд для бота. Пример php скрипта с демо-меню для чата:

Подробнее про создания чат-бота Telegram можно почитать здесь

https://golos.io/ru—obrazovanie/@tristamoff/sozdat-svoego-bota-v-telegram-prosto-kak-dvazhdy-dva

Ошибка в Qlik «Bad Request: message text must be encoded in UTF-8»

Что делать, если Вы в QlikView отправляете сообщение и получаете ошибку:

Надо перекодировать сообщение в формат UTF-8:

Еще один пример реализации Telegram Chat Bot на PHP

В этой главе я приведу скрипт php для создания вот такого вот чат-бота (Перейти в демо-чат бот>>>):

Телеграм чат бот Telegram на php для qlikview и qlik sense

qlikview

Применение Chat Bot Telegram в бизнес-аналитике QlikView

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

В настоящий момент есть возможность создания Чат-Бота в Telegram, который по запросу будет присылать вам персональный отчет: например, показатели по каналам продаж в разрезе территорий. Или карту России в цветовой палитре, которая характеризует уровень продаж или уровень рентабельности того или иного региона. И все это в любое время и в любом месте, благо телефон всегда под рукой. И не нужно больше писать ИТ-специалистам или аналитикам, чтобы они сформировали и выслали отчет. При этом, стоит отметить, что чат боты имеют существенное преимущество — во-первых это дешевле, чем готовые ИТ-решения (по сравнению с другими продуктами), во-вторых Вы сами определяете, когда хотите посмотреть отчет, в-третьих огромная гибкость системы оповещений через мессенджер Telegram.

Бизнес-аналитика с помощью чат-бота выходит на новый этап. Помимо того, что можно запрашивать информацию о деятельности вашей компании, также можно автоматизировать бизнес-аналитику по конкурентам: получать информацию о количестве акционных товарных позициях конкурента на его сайте. Какие маркетинговые акции проводятся в социальных сетях, по каким товарным позициям были снижены цены и т.д. Или к примеру, Вы закупили определенный товар на склад, а конкурент снизил цену. Вы об этом сразу же узнаете и разработаете стратегию борьбы с конкурентами.
Формат рассылки отчетов в Telegram может быть абсолютно любым: pdf-файл, excel-файл, картинка, предложение с показателями и т.д. Вплоть до воспроизведения текстов с помощью Yandex-голосового помощника (например, Вы едите на машине и слушаете главные новости о топовом ассортименте сбыта за вчерашний день и т.д.).

Заказать чат-бота Telegram и аналитическую систему QlikView Вы можете на сайте «Консультационные услуги QlikView».

Немного об этапах работ по разработке чат-бота и аналитической системы

  • сначала создается приложение QlikView для анализа данных,
  • затем создаются отчёты (цели отчетов, формат отчетов, количество, прописываются аналитики и показатели),
  • Далее разрабатывается чат-бот, который эти отчёты формирует и присылает Вам.

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

«Общая сумма продаж за вчерашний день N млн рублей. Топ-3 продаж по продуктам: G, I и Y. Лидеры продаж: Иванов Семен, Владимир Конюхов и Константин Денисов. Худшие продажи: 3 сотрудника. 3 наибольшие дебиторские задолженности у компаний: Компания 1 — $$$, Компания 2 — $$$, Компания 3 — $$$».

Или

«Вася Иванов сделал столько-то звонков, но продал на $$$. А Петя Сидоров сделал звонков меньше, но продажи $$$».

И вся эта информация поступает на свежую голову и пока Вы добираетесь до работы — Вам может прийти в голову идея.

2
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x