Table of Contents |
---|
Возможности
- Мультиязычность
- Автоопределение языка клиента Telegram (добавлено в 1.39.03)
- Основной функционал личного кабинета
Настройка БД
Для корректной работы надо создать таблицу Настройка работы с базой данных и создание таблиц:
Code Block |
---|
mysql -D abills < /usr/abills/Abills/modules/Telegram/Telegram.sql |
Создание бота
(если у вас уже есть бот, эту часть можно пропустить)
Эту операцию нужно делать с устройства где установлен Telegram.
- Заходим https://t.me/botfather .
Если есть аккаунт нажимаем кнопку “Send message”.
Если нету, то регистрируемся в Telegram-е, затем снова заходим и нажимаем “Send message”,
или можно сразу зайти в Telegram, в поиске вбить BotFather и перейти к диалогу с ним. - На главном экране бота нажимаем “Start”.
- Покажется список возможных команд для обращения к BotFather.
Нам нужно ввести команду/newbot
. - BotFather спросит имя нашего бота.
Это имя будет отображаться в деталях контакта. Вводим имя бота, например, Testbot. - Следующий шаг нас спрашивают Имя пользователя бота (username).
Этот параметр будет использоваться для запросов к боту.
От 5 до 32 символов, регистр-чувствительная латиница, цифры и нижние подчеркивания.
Имя пользователя бота должно заканчиваться на bot. Вводим имя пользователя (username), напримерTestAbills_bot
. - Вы зарегистрировали вашего бота – внимательно осмотрите финальное сообщение на предмет параметров:
Линк Телеграм-бота
Например:https://t.me/TestAbills_bot
а так же очень важный параметр - токен.
Например:167953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg
- Бот успешно создан!
Настройка
- Для нормальной работы через webhook вам необходимо открыть порт 443,или 80, 88, 8443 для входящих POST запросов.
Важно: Телеграм не работает с портом 9443. Обязательно включить шифрование. Необходимо создать конфигурацию доступа веб-сервера Apache для работы Telegram-бота.
Заходим в директории, где находится конфиг Apache.Code Block language bash title Создание конфигурации веб-сервера для Telegram-бота linenumbers true collapse true cd /etc/apache2/sites-enabled/ touch telegram_httpd.conf cat abills_httpd.conf >> telegram_httpd.conf
- В
telegram_httpd.conf
меняем порт з 9443 на 8443. Создайте директорию со сложным названием:
Code Block language bash title Создание каталога для Telegram-бота mkdir /usr/abills/cgi-bin/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/
Название директории желательно сделать сложным и уникальным, для этого можно использовать токен (или его часть).- Скопируйте в эту директорию файл
telegram_bot.cgi
Code Block language bash title Привязка телеграм-бота ln -s /usr/abills/Abills/modules/Telegram/telegram_bot.cgi /usr/abills/cgi-bin/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/
- Необходимо прописать в
config.pl
обязательные параметры (ниже в таблице).
В config.pl нужно добавить:
Параметр | Описание |
---|---|
$conf{TELEGRAM_TOKEN}=' '; | Обязательный параметр. Пример: |
$conf{TELEGRAM_BOT_NAME}=' '; | Обязательный параметр. Пример: |
| Подпись и номер телефона разделяются знаком ' | ' а каждый следующий номер знаком ' ; ' Пример: |
| Подпись и url разделяются знаком ' | ' а каждый следующий url знаком ' ; ' Пример: |
| Ссылка на произвольный телеграм канал. Пример: |
| Ссылка на сайт провайдера. Пример: |
| Локализация бота. По умолчанию, доступны три значения: |
$conf{TELEGRAM_MSGS_BOT_ENABLE} = 1; | Позволяет пользователю отвечать на сообщения тех. поддержки. |
$conf{TELEGRAM_USER_PORTAL} = 'url'; | Прописать URL к личному кабинету пользователя (Портал абонента). |
$conf{TELEGRAM_TERMINAL} = 'url'; | Прописать URL к сервису с картой где будут отображаться терминалы |
$conf{TELEGRAM_PAYMENT_CREDENTIAL} = 'string' | Здесь можно указать информацию для платежных реквизитов по оплате |
$conf{MONEY_UNIT_NAMES}='грн.;коп.' | Название валюты, используется ботом |
$conf{TELEGRAM_NUMBER_EXPR} = '^380/0'; | Регулярное выражение для номера телефона. В примере |
| Текст, который будет отображаться для ввода карт пополнения. |
Проверьте появился ли доступ к файлу (https://YOUR.URL:YOURPORT/Telegram
AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/
telegram_bot.cgi
).
Если доступ есть – можно установить вебхук, соединение с Bot API Telegram.
Если используется действующий SSL-сертификат:
Code Block | ||
---|---|---|
| ||
curl -F "url=https://YOUR.URL:YOURPORT/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/telegram_bot.cgi" https://api.telegram.org/bot<YOURTOKEN>/setWebhook |
Если используется самоподписанный SSL-сертификат:
Code Block | ||||
---|---|---|---|---|
| ||||
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 | ||
---|---|---|
| ||
{"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 | ||||
---|---|---|---|---|
| ||||
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 | ИнтернетПроверка связи | Выводит информацию о подключенных услугах. | Информация о состоянии подключения оптического терминала (в сети или выключен терминал) и состоянии порта оптического терминала, подключен ли к нему роутер.
| ||
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 | Кредит | Возможность взятия кредита. | |||
или расписание на новый тариф. | |||||
Set_credit.pm | Кредит | Возможность взятия кредита. | |||
User_faq.pm | Частые вопросы | Модуль Expert. Интерактивное меню частых вопросов и ответов на них. | |||
User_info.pm | Аккаунт | Показывает некоторую информацию о пользователе. |
Начало работы с ботом
Для того чтобы начать работать с ботом абонент должен подписаться на него. Сделать это можно двумя способами.
- Пользователь может нажать кнопку в в личном кабинете.
Дополнительно, при нажатии на правую подкнопку может открыться QR-код на подписку: - Пользователь может открыть чат с ботом, и там подтвердить свой телефон. (Необходимо чтобы его телефон был занесен в базу биллинга).
Note |
---|
Для корректной работы с ботом нужно, чтобы номер телефона абонента в биллинге был уникален. Подписаться на бота можно только с одного логина. |
Для проверки результата после установки бота, используйте эту команду:
Code Block | ||||
---|---|---|---|---|
| ||||
curl https://api.telegram.org/bot<TELEGRAM_TOKEN>/getWebhookInfo |
Разработчикам - Создание кнопок для Telegram-бота Тестирование бота
Авторизация через кабинет пользователя с помощью телеграмм
Пользователь должен быть подписан на бота, тогда будет работать авторизация.
Функция напоминания для неактивных пользователей
Данный функционал предназначен для автоматической отправки напоминаний пользователям, которые не отвечают в течение определенного времени (не более 3-х уведомлений на одно действие пользователя).
Если клиент не отвечает на вопрос бота более двух минут (не более суток), система отправляет ему напоминание с вопросом, нуждается ли он в дополнительной помощи.
Это помогает поддерживать непрерывное взаимодействие и повышает удовлетворенность клиентов.
Для активации этого функционала необходимо запустить плагин telegram_ping
, расположенный по пути /usr/abills/libexec/billd
.
Добавьте следующую строку для запуска плагина каждые 5 минут (или с другой необходимой периодичностью):
Code Block |
---|
*/5 * * * * /usr/abills/libexec/billd telegram_ping |
QR-коды для Telegram-ботов
Для отображения установите модуль:
В файле config.pl :
Code Block | ||
---|---|---|
| ||
@MODULES = (
'Telegram'
); |