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

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

Настройка

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

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

конфиг телеграмма.
  1. конфигурацию доступа веб-сервера Apache для работы Telegram-бота.
    Заходим в директории, где находится конфиг

apache
  1. Apache.

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


  2. В telegram_httpd.conf меняем порт з 9443 на 8443.
  3. Создайте директорию

mkdir 
  1. со сложным названием:

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


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

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



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


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

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

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

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

Пример: 167953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg

$conf{TELEGRAM_BOT_NAME}=' ';

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

Пример: TestAbills_bot

$conf{TELEGRAM_SUPPORT_PHONE}=' ';

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

Пример: 'MTC|09600000;Lifecell|123456789'

$conf{TELEGRAM_LINK_URL}=' ';

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

Пример: 'Акция|https://test.ua;Магазин|https://shop.ua;'

Ссылка на произвольный телеграм канал.

Пример: 'https://t.me/test_abills'

$conf{TELEGRAM_SITE}=' ';

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

Пример: 'http://abills.net.ua'

$conf{TELEGRAM_LANG}=' ';

$conf{TELEGRAM_PAYMENT_CREDENTIAL} = 'string'Здесь можно указать информацию для платежных реквизитов по оплате

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

$conf{TELEGRAM_MSGS_BOT_ENABLE} = 1;Позволяет пользователю отвечать на сообщения тех. поддержки.
$conf{TELEGRAM_USER_PORTAL} = 'url';Прописать URL к личному кабинету пользователя (Портал абонента)
$conf{TELEGRAM_TERMINAL} = 'url';Прописать URL к сервису с картой где будут отображаться терминалы

"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).

Если доступ есть - можно установить вебхук, соединение с 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 его не примет.
-
  • при любом изменении/обновлении самоподписанного сертификата, его необходимо обновить с помощью команды выше (сертификат указываем явно).

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

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


Warning

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

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

Бот загружает файлы из папки /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/

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

ИнтернетПозволяет добавлять потенциальных клиентов через Телеграм. Если пользователя не найдено по номеру телефона, ему будет предложено оставить заявку на подключение.
Название файлаКнопкаОписание
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), включает в себя также информацию о счете. Есть возможность взять кредит или отменить приостановление .Msgs_reply.pmПозволяет пользователю отвечать на сообщения тех. поддержки.
Privat_payment.pmОплата PrivatBankПозволяет перейти на страницу оплаты PrivatBank  для совершения оплаты (Должен быть подключен модуль Privat_terminal.pm)
Easypay_payment.pmОплата EasypayПозволяет перейти на страницу оплаты Easypay  для совершения оплаты (Должен быть подключен модуль Easypay.pm)
City24_payment.pmОплата City24Позволяет перейти на страницу оплаты City24  для совершения оплаты (Должен быть подключен модуль City24.pm)
Crm_new_lead.pmОставить заявкуили расписание на новый тариф.
Set_credit.pmКредитВозможность взятия кредита.
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