Versions Compared

Key

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

Table of Contents

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

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

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

1) Заходим https://telegram.me/botfather . Если есть аккаунт нажимаем кнопку “Send message”. Если нету, то регистрируемся в Telegram-е, затем снова заходим и нажимаем “Send message”. Или можно сразу зайти в Telegram, в поиске вбить Botfather и перейти к диалогу с ним.

2) На главном экране бота нажимаем “Start”.

3) Покажется список возможных команд для обращения к BotFather. Нам нужно ввести команду

/newbot.

4) BotFather спросит имя нашего бота. Это имя будет отображаться в деталях контакта. Вводим имя бота, например, Testbot.

5) Следующий шаг нас спрашивают Имя пользователя бота (username). Это параметр будет использоваться для запросов к боту. От 5 до 32 символов, регистр-чувствительная латиница, цифры и нижние подчеркивания. Имя пользователя бота должно заканчиваться на bot. Вводим наше имя пользователя (username), например TestAbills_bot.

6) Мы зарегистрировали нашего бота. Мы получили линк на нашего бота https://telegram.me/TestAbills_bot, а так же очень важный параметр - токен.

Токен: 167953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg

7) Бот создан!

Настройка

Для нормальной работы через webhook вам необходимо открыть порт 443, 80, 88 или 8443 для входящих POST запросов. (Телеграм не работает с портом 9443). Обязательно включить шифрование.

Создайте директорию /usr/abills/cgi-bin/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/

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

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

ln -s /usr/abills/Abills/modules/Telegram/telegram_bot.cgi /usr/abills/cgi-bin/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/

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

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

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

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

Если используется самоподписанный сертификат:

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 сертификата должен быть ваш домен или IP, иначе Telegram его не примет.

- при любом изменении/обновлении самоподписанного сертификата, его необходимо обновить с помощью команды выше (сертификат указываем явно).

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

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


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

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

Обязательный параметр.

Пример: 167953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg

$conf{TELEGRAM_BOT_NAME}

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

Пример: TestAbills_bot

$conf{TELEGRAM_SUPPORT_PHONE}

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

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

$conf{TELEGRAM_LINK_URL}

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

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

$conf{TELEGRAM_CHANEL}

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

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

$conf{TELEGRAM_SITE}

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

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

$conf{TELEGRAM_LANG}

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


$conf{TELEGRAM_MSGS_BOT_ENABLE} = 1;Позволяет пользователю отвечать на сообщения тех. поддержки.


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_info.pmИнтернетВыводит информацию о подключенных услугах.
Isp_info.pmО компанииВыводит информацию о компании (Данные заполняются в Настройка>Другое>Параметры организации)
Make_payment.pmПополнить счетПодсказка о том как пополнить счет (текст нужно заполнять самому в файле)
Send_message.pmОтправить сообщениеПозволяет пользователю создать сообщение в службу поддержки.
Services_and_account.pmУслуги и счетРасширенная версия кнопки Интернет, включает в себя также информацию о счете. Есть возможность взять кредит или отменить приостановление.
Msgs_reply.pm
Позволяет пользователю отвечать на сообщения тех. поддержки.



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

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

1. Пользователь может нажать кнопку  в личном кабинете.

2. Пользователь может открыть чат с ботом, и там подтвердить свой телефон. (Необходимо чтобы его телефон был занесен в базу биллинга).


Note

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


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

Code Block
https://api.telegram.org/bot<TELEGRAM_TOKEN>/getWebhookInfo



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