Skip to end of metadata
Go to start of metadata

Настройка БД

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

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

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

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

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

  1. Заходим https://t.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://t.me/TestAbills_bot
    а так же очень важный параметр - токен.
    Например: 167953392:AAGwtpKCJnVU7U2vHdqX2dxpyYa12DfQ1
  7.  Бот успешно создан!

Настройка

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

    Создание конфигурации веб-сервера для Telegram-бота
    cd /etc/apache2/sites-enabled/
    touch telegram_httpd.conf
    cat abills_httpd.conf >> telegram_httpd.conf
  3. В telegram_httpd.conf меняем порт з 9443 на 8443.
  4. Создайте директорию со сложным названием:

    Создание каталога для Telegram-бота
    mkdir /usr/abills/cgi-bin/TelegramAAGwtpKCJnVU7U2vHdqX2dxpyYa12DfQ1/


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

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

    Привязка телеграм-бота
    ln -s /usr/abills/Abills/modules/Telegram/telegram_admin_bot.cgi /usr/abills/cgi-bin/TelegramAAGwtpKCJnVU7U2vHdqX2dxpyYa12DfQ1/
  6. Необходимо прописать в config.pl обязательные параметры (ниже в таблице).

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

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

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

Пример: 167953392:AAGwtpKCJnVU7U2vHdqX2dxpyYa12DfQ1

$conf{TELEGRAM_ADMIN_BOT_NAME}=' ';

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

Пример: TestAbills_bot

$conf{TELEGRAM_LANG}=' ';

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

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

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

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

curl -F "url=https://YOUR.URL:YOURPORT/TelegramAAGwtpKCJnVU7U2vHdqX2dxpyYa12DfQ1/telegram_admin_bot.cgi" https://api.telegram.org/bot<YOURTOKEN>/setWebhook


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

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

Примечание:

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

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

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


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

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

Бот загружает файлы из папки /usr/abills/Abills/modules/Telegram/buttons-enabled/
Каждый файл - это отдельная кнопка, которая добавляется в меню.
Для подключения новых функций, необходимо скопировать  нужные вам кнопки (или создать ссылку) из папки /usr/abills/Abills/modules/Telegram/buttons-avaiable/

Пример
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/

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

Название файлаКнопкаОписание
Admin_equipment.pmОборудование
Admin_msgs.pmСообщенияИнформации о сообщениях администратора

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

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

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

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

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

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