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) Следующий шаг нас спрашивают Имя пользователя бота. Это параметр будет использоваться для запросов к боту. От 5 до 32 символов, регистро-чувствительная латиница, цифры и нижние подчеркивания. Имя пользователя бота должно заканчиваться на bot. Вводим наше имя пользователя, например TestAbills_bot.
6) Мы зарегистрировали нашего бота. Мы получили линк на нашего бота https://telegram.me/TestAbills_bot, а так же очень важный параметр - токен.
|
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 | ||
---|---|---|
| ||
curl -F "url=https://YOUR.URL:YOURPORT/TelegramAAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg/telegram_bot.cgi" https://api.telegram.org/bot<YOURTOKEN>/setWebhook |
Если используется самоподписанный сертификат, его нужно при установке вебхука явно загрузить:
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 сертификата должен быть ваш домен или 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 (Ссылка на сайт провайдера) |
Интерфейс бота
Бот загружает файлы из папки /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_info.pm | Интернет | Выводит информацию о подключенных услугах. |
Isp_info.pm | О компании | Выводит информацию о компании (Данные заполняются в Настройка>Другое>Параметры организации) |
Make_payment.pm | Пополнить счет | Подсказка о том как пополнить счет (текст нужно заполнять самому в файле) |
Send_message.pm | Отправить сообщение | Позволяет пользователю создать сообщение в службу поддержки. |
Services_and_account.pm | Услуги и счет | Расширенная версия кнопки Интернет, включает в себя также информацию о счете. Есть возможность взять кредит или отменить приостановление. |
Msgs_reply.pm | Позволяет пользователю отвечать на сообщения (при включеной опции $conf{TELEGRAM_MSGS_BOT_ENABLE}=1;) |
Начало работы с ботом
Для того чтобы начать работать с ботом абонент должен подписаться на него. Сделать это можно двумя способами.
1. Пользователь может нажать кнопку в личном кабинете.
2. Пользователь может открыть чат с ботом, и там подтвердить свой телефон. (Необходимо чтобы его телефон был занесен в базу биллинга).
Для разработчиков
Code Block | ||||
---|---|---|---|---|
| ||||
$self->{bot}->send_message({
text => "Текст сообщения",
}); |
Code Block | ||||
---|---|---|---|---|
| ||||
$self->{bot}->send_message({
text => "Текст сообщения",
reply_markup => {
inline_keyboard => [[{
text => "Кнопка в сообщении",
callback_data => "button_name&fn_name"
}]],
}
}); |
Code Block | ||||
---|---|---|---|---|
| ||||
$self->{bot}->send_message({
text => "Текст сообщения",
reply_markup => {
inline_keyboard => [[{
text => "Кнопка с ссылкой",
url => "http://abills.net.ua"
}]],
}
}); |
language | perl |
---|---|
title | Отправка сообщения с заменой клавиатуры (многоуровневая операция) |
Разработчикам - Создание кнопок для бота Тестирование бота