Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image Added

Table of Contents

Возможности

  • Мультиязычность
  • Автоопределение языка клиента Telegram (добавлено в 1.39.03)
  • Основной функционал личного кабинета

Настройка БД

 Настройка работы с базой данных и создание таблиц:

Code Block
mysql -D abills < /usr/abills/Abills/modules/Telegram/Telegram.sql

Создание бота

(если у вас уже есть бот, эту часть можно пропустить)

Эту операцию нужно делать с устройства где установлен Telegram.1) Заходим 

  1. Заходим https://
telegram
  1. t.me/botfather .
    Если есть аккаунт нажимаем кнопку “Send message”.
    Если нету, то регистрируемся в Telegram-е, затем снова заходим и нажимаем “Send message”
. Или
  1. ,
    или можно сразу зайти в Telegram, в поиске вбить
Botfather
  1. BotFather и перейти к диалогу с ним.
2)
  1. На главном экране бота нажимаем “Start”.
3)
  1. Покажется список возможных команд для обращения к BotFather.
    Нам нужно ввести команду
  1. /newbot.
4)
  1. BotFather спросит имя нашего бота.
    Это имя будет отображаться в деталях контакта. Вводим имя бота, например,
 Testbot
  1. Testbot.
5)
  1. Следующий шаг нас спрашивают Имя пользователя бота (username).
Это

  1. Этот параметр будет использоваться для запросов к боту.
    От 5 до 32 символов,
регистро
  1. регистр-чувствительная латиница, цифры и нижние подчеркивания.
    Имя пользователя бота должно заканчиваться на bot. Вводим
наше
  1. имя пользователя (username),
например 
  1. например TestAbills_bot.
6) Мы
  1. Вы зарегистрировали
нашего бота. Мы получили линк на нашего бота 
  1. вашего бота – внимательно осмотрите финальное сообщение на предмет параметров:
    Линк Телеграм-бота
    Например: https://
telegram
  1. t.me/TestAbills_bot
,

  1. а так же очень важный параметр - токен.
Токен
  1. Например: 167953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg
-io .7) Бот
  1.  Бот успешно создан!

Настройка

  1. Для нормальной работы через webhook вам необходимо открыть
порт 
  1. порт 443,или 80, 88
или
  1. , 8443 для входящих POST запросов.
(

  1. Важно: Телеграм не работает с портом 9443
)
  1. . Обязательно включить шифрование.
  2. Необходимо создать конфигурацию доступа веб-сервера Apache для работы Telegram-бота.
    Заходим в директории, где находится конфиг Apache.

    Code Block
    languagebash
    titleСоздание конфигурации веб-сервера для Telegram-бота
    linenumberstrue
    collapsetrue
    cd /etc/apache2/sites-enabled/
    touch telegram_httpd.conf
    cat abills_httpd.conf >> telegram_httpd.conf


  3. В telegram_httpd.conf меняем порт з 9443 на 8443.
  4. Создайте директорию со сложным названием:

    Code Block
    languagebash
    titleСоздание каталога для Telegram-бота
    mkdir /usr/abills/cgi-bin/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/


    Название директории желательно сделать сложным и уникальным, для этого можно использовать токен (или его часть).

  5. Скопируйте в эту директорию файл telegram_bot.cgi



    Code Block
    languagebash
    titleПривязка телеграм-бота
    ln -s /usr/abills/Abills/modules/Telegram/telegram_bot.cgi /usr/abills/cgi-bin/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/


  6. Необходимо прописать в config.pl обязательные параметры (ниже в таблице).

В config.pl нужно добавить:

ПараметрОписание
$conf{TELEGRAM_TOKEN}=' ';

Обязательный параметр.
Токен доступа до вашего Telegram-бота.

Пример: 167953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg

$conf{TELEGRAM_BOT_NAME}=' ';

Обязательный параметр.
Должен строго совпадать с "username", что вы указали боту BotFather.

Пример: TestAbills_bot

$conf{TELEGRAM_LANG}=' ';

Локализация бота. По умолчанию, доступны три значения: "english", "russian", "ukrainian".

$conf{MONEY_UNIT_NAMES}='грн.;коп.'Название валюты, используется ботом
$conf{TELEGRAM_NUMBER_EXPR} =  '^380/0';

Регулярное выражение для номера телефона.

В примере '^380/0' позволяет удалять код страны из номера

$conf{TELEGRAM_CARDS_MESSAGE} = 'ТЕКСТ';

Текст, который будет отображаться для ввода карт пополнения.


Проверьте появился ли доступ к файлу ( https://YOUR.URL:YOURPORT/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/telegram_bot.cgi).

Image Added

Если доступ есть - можно установить вебхук, соединение с Bot API Telegram.

  

Если используется действующий SSL-сертификат:

Code Block
languagebash
curl -F "url=https://YOUR.URL:YOURPORT/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/telegram_bot.cgi" https://api.telegram.org/bot<YOURTOKEN>/setWebhook


Если используется самоподписанный сертификат, его нужно при установке вебхука явно загрузитьSSL-сертификат:


Code Block
languagebash
titleУстановка WebHook
curl -F "url=https://YOUR.URL:YOURPORT/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/telegram_bot.cgi" -F "certificate=@/usr/abills/Certs/server.crt" https://api.telegram.org/bot<YOURTOKEN>/setWebhook

В Примечание:

  • в поле CN (Common Name) сертификата должен быть ваш домен или IP, иначе Telegram его не примет.

В config.pl нужно добавить токен и никнейм бота

ПараметрПример$conf{TELEGRAM_TOKEN}167953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg-io$conf{TELEGRAM_BOT_NAME}

Awesome_bot

(Строго должен совпадать с тем именем что вы указали боту botfather)

$conf{TELEGRAM_SUPPORT_PHONE}

MTC|09600000;Lifecell|123456789

(Подпись и номер разделяются знаком ' | ' а каждый следующий номер знаком ' ; ' )

$conf{TELEGRAM_LINK_URL}

Акция|https://test.ua;Магазин|https://shop.ua;

(Подпись и url разделяются знаком ' | ' а каждый следующий url знаком ' ; ' )

$conf{TELEGRAM_CHANEL}

https://t.me/test_abills

(Ссылка на телеграм канал)

$conf{TELEGRAM_SITE}

http://abills.net.ua

(Ссылка на сайт провайдера)

$conf{TELEGRAM_LANG}

Локализация бота, допустмо три значения (english, russian, ukrainian)

Интерфейс бота

Бот загружает файлы из папки /usr/abills/Abills/modules/Telegram/buttons-enabled/
Каждый файл - это отдельная кнопка, которая добавляется в меню.
Для подключения новых функций, необходимо скопировать  нужные вам кнопки (или создать ссылку) из папки /usr/abills/Abills/modules/Telegram/buttons-avaiable/
Code Block
languagebash
titleПример
mkdir /usr/abills/Abills/modules/Telegram/buttons-enabled/ ln -s /usr/abills/Abills/modules/Telegram/buttons-avaiable/Send_message.pm /usr/abills/Abills/modules/Telegram/buttons-enabled/
  • при любом изменении/обновлении самоподписанного сертификата, его необходимо обновить с помощью команды выше (сертификат указываем явно).

Успешное выполнение команды установки вебхука выглядит примерно так:

Code Block
languagebash
{"ok":true,"result":true,"description":"Webhook was set"}


Warning

После настройки телеграм бота нужно перезапустить бота "Остановить и блокировать/Остановить бота", а затем нажать кнопку "Перезапустить бота".

Интерфейс бота

На сегодняшний день доступны следующие функции.

ИнтернетПодсказка о том как пополнить счет (текст нужно заполнять самому в файле)Позволяет пользователю отвечать на сообщения (при включеной опции $conf{TELEGRAM_MSGS_BOT_ENABLE}=1;)
Название файлаКнопкаОписание
Balance.pmБаланс

Выводит состояние счета

, информацию о последнем пополнении счета и последнем списанииInternet

. Дополнительно указывает сумму всех сервисов.

Card_payment.pmКарточки пополенияПополнения счёта через скретч карточки
Crm_new_lead.pmОставить заявкуПозволяет добавлять потенциальных клиентов через Телеграм. Если пользователя не найдено по номеру телефона, ему будет предложено оставить заявку на подключение.
Equipment_info.pmПроверка связиВыводит информацию о подключенных услугах.

Информация о состоянии подключения оптического терминала (в сети или выключен терминал) и состоянии порта оптического терминала, подключен ли к нему роутер.

Info

Шаблон для отображения действий при ошибке: modules/Telegram/templates/telegram_equipment_info_error.tpl

Image Added

Isp_info.pmО компанииВыводит информацию о компании (Данные заполняются в Настройка>Другое>Параметры организации)Make_payment
Msgs_reply.pm
Позволяет пользователю отвечать на сообщения тех. поддержки.
Paysys_pay.pmПополнить счетОплата с Телеграм-бота с модуля Paysys
Portal_articles.pmНовостиМодуль Portal. Показывает последние 10 новостей.
Send_message.pmОтправить сообщениеПозволяет пользователю создать сообщение в службу поддержки.
Services_and_account.pmУслуги и счетРасширенная версия кнопки ИнтернетКнопка всех сервисов (Internet, IPTV, Abon, Cams, VoIP, Mobile), включает в себя также информацию о счете. Есть возможность взять кредит или отменить приостановление или расписание на новый тариф.
Set_credit.Msgs_reply.pmpmКредитВозможность взятия кредита.
User_faq.pmЧастые вопросыМодуль Expert. Интерактивное меню частых вопросов и ответов на них.
User_info.pmАккаунтПоказывает некоторую информацию о пользователе.


Начало работы с ботом

Для того чтобы начать работать с ботом абонент должен подписаться на него. Сделать это можно двумя способами.1. Пользователь

  1. Пользователь может нажать
кнопку Image Removed в
  1. кнопку в личном кабинете.
2.
  1. Image Added
    Дополнительно, при нажатии на правую подкнопку может открыться QR-код на подписку:
    Image Added
  2. Пользователь может открыть чат с ботом, и там подтвердить свой телефон. (Необходимо чтобы его телефон был занесен в базу биллинга).
    Image Modified

Note

Для корректной работы с ботом нужно, чтобы номер телефона абонента в биллинге был уникален.

Подписаться на бота можно только с одного логина.


Для проверки результата после установки бота, используйте эту команду:

Code Block
languagebash
titleПроверка работы Telegram-бота со стороны Bot API
curl https://api.telegram.org/bot<TELEGRAM_TOKEN>/getWebhookInfo


Разработчикам - Создание кнопок для Telegram-бота  Тестирование бота

Авторизация через кабинет пользователя с помощью телеграмм

Пользователь должен быть подписан на бота, тогда будет работать авторизация.

Как настроить?


Функция напоминания для неактивных пользователей

Данный функционал предназначен для автоматической отправки напоминаний пользователям, которые не отвечают в течение определенного времени (не более 3-х уведомлений на одно действие пользователя).

Если клиент не отвечает на вопрос бота более двух минут (не более суток), система отправляет ему напоминание с вопросом, нуждается ли он в дополнительной помощи.

Это помогает поддерживать непрерывное взаимодействие и повышает удовлетворенность клиентов.

Image Added

Для активации этого функционала необходимо запустить плагин telegram_ping, расположенный по пути /usr/abills/libexec/billd.

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

Code Block
*/5 * * * * /usr/abills/libexec/billd telegram_ping


QR-коды для Telegram-ботов

Для отображения установите модуль:

В файле config.pl :

Code Block
languageperl
@MODULES = (
             'Telegram'
            );

Image Added