Skip to content

Latest commit

 

History

History
107 lines (82 loc) · 11.7 KB

telegram.md

File metadata and controls

107 lines (82 loc) · 11.7 KB

Настройки telegram бота

За настройки telegram бота отвечает секция mbplugin.ini [Telegram]

Шаг первый - получить API-TOKEN

Для работы бота его необходимо зарегистрировать в telegram. Это абсолютно простая операция.
В телеграмме идем в бота @BotFather даем команду /newbot задаем имя для бота, оно обязательно должно заканчиваться на ...bot и должно быть не занято, получаем сообщение с токеном бота вида 123456:AAFgshadfgjasdgfghadEklmn Идем в mbplugin.ini, создаем секцию [Telegram] и прописываем туда:

[Telegram]
api_token = <TELEGRAM API-TOKEN>  
auth_id = ваши id через запятую (в начале просто оставьте пустым если пока не знаете)  

Обязательно перезапускаем webserver (run_webserver.bat)

Телеграм бот вариант 1 (получаем балансы из собственной базы sqlite)

Данный вариант включен по умолчанию, при желании его можно явно указать добавив в секцию
[Telegram]
параметр
tg_from = sqlite
Для варианта работы без MobileBalance это единственный вариант
В этом варианте бот берет из базы mbplugin, для того чтобы в боте были все балансы необходимо включить импорт данных из mdb базы mobilebalance

  1. Для работы бота необходимо в mbplugin.ini включить в основной секции [Options] опцию sqlitestore = 1 (в варианте Standalone включена по умолчанию)
  2. Если вы используете MobileBalance и хотите чтобы бот также показывал балансы не только по балансам полученным через mbplugin но и по обычным плагинам, необходимо включить опцию updatefrommdb = 1 (подробное описание в разделе про mbplugin.ini)

Телеграм бот вариант 2 (получаем балансы из mobilebalance)

В этом варианте данные бот берет из встроенного в MobileBalance web сервера, соответственно берет все балансы что есть в MobileBalance без дополнительных усилий. Естественно работать это будет только в том случае если Вы используете MobileBalance

  1. Для работы этого варианта необходимо включить WWW сервер в настройках Mobilebalance - идем Настройки программы \ WWW ставим галку Запустить встроенный WEB сервер, задаем пароль 123456, если вы хотите прописать другой пароль, то в секции [Telegram] необходимо добавить параметр mobilebalance_http = http://localhost:19778/ваш пароль/ Обязательно проверьте в браузере что такой адрес открывается.
    !!! после пароля символ / обязателен
  2. Включаем показ колонки Delta (запрос), для этого идем в настройки MobileBalance Информационное окно и ставим черную (обязательно черную, а не серую) галочку напротив Изменение баланса относительно предыдущего запроса (Расчетный)
  3. В mbplugin.ini в секцию [Telegram] добавляем параметры
[Telegram]
tg_from = mobilebalance
mobilebalance_http = http://localhost:19778/ваш пароль/

Переключение варианта работы.

После настройки можно переключаться между вариантами (sqlite и mobilebalance) без перезапуска web сервера меняя параметр tg_from на mobilebalance или sqlite

Настройка бота

Заходим в нашего бота в телеграм, обязательно говорим /start затем говорим /id - получаем наш id и прописываем его в mbplugin.ini в строку auth_id, если хотим разрешить телеграм с нескольких телефонов, то проделываем эту операцию на всех номерах и прописываем все id через запятую в параметр auth_id, только с этих id можно будет давать команды боту и запрашивать данные

[Telegram]
...
auth_id = ваши id через запятую

После записи id в mbplugin.ini даем в ботика команду /balance или /balancefile, должен прийти баланс в виде текста или файла.

Настройка автоматической отправки после опроса телефонов в MobileBalance

Чтобы бот автоматически слал балансы после опроса, идем в настройки MobileBalance Плагины\После запроса, Добавить Редактировать Исполняемый файл Нажимаем на иконку файла и указываем mbplugin\plugin\send_tgbalance.bat (помните что файл может прийти в любое время и ботика тогда имеет смысл замьютить)

Телеграм бот дополнительные возможности

Иконка для бота и команды

  1. В @BotFather можно еще дополнительно настроить команды и картинку - делается это через команду /mybots Edit bot Edit Commands - чтобы команды были по нажатию на кнопку [/] и Edit botpic - картинку бота, там ничего сложного, при желании легко разберетесь

Меню бота и алиасы

Для формирования меню по кнопке [/] (меню видно только тем, кто перечислен в auth_id) добавьте в секции Telegram параметр command_menu_list
В меню можно добавить как команды так и алиасы, но не добавляйте в меню слишком много, иначе у него появится scroll и пользоваться им будет гораздо менее удобно, редко используемые команды удобнее вызывать через /help и далее кликом по нужной команде
Все команды независимо от того, добавлены они в меню или нет, по прежнему можно вызвать как обычную команду /command
Т.к. в меню можно добавить только команды, если Вы хотите добавить команду с фильтром то для таких команд можно создать алиасы с помощью параметра cmd_alias
Каждый алиас имеет формат алиас:описание:команда (разделяется двоеточием), номера у строчек должны отличаться
Пример:

[Telegram]
...
command_menu_list = help,id,balance,petrovich,ivanych
;при выполнении команды /petrovich будет выполнена команда /balance petrovich
;а /help про нее будет показывать Баланс Петровича
cmd_alias1 = /petrovich:Баланс Петровича:/balance petrovich
cmd_alias2 = /ivanych:Баланс Иваныча:/balance ivanych

Телеграм через прокси

По умолчанию бот пытается соединиться напрямую, если вы работаете через прокси то можно включить соединение через прокси (в разделе ini файла [Telegram]) следующим образом:

  • tg_proxy = auto будет пытаться брать настройки из браузера
  • tg_proxy = https://адрес_прокси:порт явно указать настройки прокси

Подписки

Представим, что у вас большой список балансов не только своих, но и родителей и вы хотите, чтобы родителям приходила информация только по их счетам. Помимо общей рассылки и получения баланса по запросу можно добавить в секцию [Telegram] следующие строки (строк может быть сколько угодно, главное чтобы хвост XXX различался, например subscription1, subscription2 и т.д.)
subscriptionXXX = id:123456,234567 include:1111,2222 exclude:6666
где:

  • id: список id телефонов (полученных командой /id)
  • include: список строк по которым данные строки будут добавлены в выдачу
  • exclude: список строк по которым данные будут убраны из выдачи

Ненужные параметры можно опустить, т.е. например
subscriptionXXX = id:123456 отправит на id 123456 результаты по всем номерам
subscriptionXXX = id:123456 include:1234 - отправит информацию по телефонам в логине или описании которых есть 1234
subscriptionXXX = id:123456 exclude:1234 - отправит информацию по телефонам в логине или описании которых отсутствует 1234

Если вы хотите чтобы и на управляющие телефоны приходили информация не по всем номерам, а только отфильтрованные номера, то добавьте в секцию [Telegram] параметр send_balance_changes = 0 - это отключит автоматическую отправку всех балансов на список auth_id, и создайте отдельную подписку на этого же список id

Важное замечание, на всех телефонах, на которые должны приходить сообщения от бота нужно зайти в вашего бота и нажать START

Если вы хотите настроить бота на нескольких компьютерах, то для каждого компа заводите отдельного бота, иначе они будут конфликтовать.