За настройки telegram бота отвечает секция mbplugin.ini [Telegram]
Для работы бота его необходимо зарегистрировать в telegram. Это абсолютно простая операция.
В телеграмме идем в бота @BotFather даем команду /newbot
задаем имя для бота, оно обязательно должно заканчиваться на ...bot и должно быть не занято, получаем сообщение с токеном бота вида 123456:AAFgshadfgjasdgfghadEklmn
Идем в mbplugin.ini, создаем секцию [Telegram] и прописываем туда:
[Telegram]
api_token = <TELEGRAM API-TOKEN>
auth_id = ваши id через запятую (в начале просто оставьте пустым если пока не знаете)
Обязательно перезапускаем webserver (run_webserver.bat)
Данный вариант включен по умолчанию, при желании его можно явно указать добавив в секцию
[Telegram]
параметр
tg_from = sqlite
Для варианта работы без MobileBalance это единственный вариант
В этом варианте бот берет из базы mbplugin, для того чтобы в боте были все балансы необходимо включить импорт данных из mdb базы mobilebalance
- Для работы бота необходимо в mbplugin.ini включить в основной секции [Options] опцию
sqlitestore = 1
(в варианте Standalone включена по умолчанию) - Если вы используете MobileBalance и хотите чтобы бот также показывал балансы не только по балансам полученным через mbplugin но и по обычным плагинам, необходимо включить опцию
updatefrommdb = 1
(подробное описание в разделе про mbplugin.ini)
В этом варианте данные бот берет из встроенного в MobileBalance web сервера, соответственно берет все балансы что есть в MobileBalance без дополнительных усилий. Естественно работать это будет только в том случае если Вы используете MobileBalance
- Для работы этого варианта необходимо включить WWW сервер в настройках Mobilebalance - идем Настройки программы \ WWW ставим галку Запустить встроенный WEB сервер, задаем пароль
123456
, если вы хотите прописать другой пароль, то в секции[Telegram]
необходимо добавить параметрmobilebalance_http = http://localhost:19778/ваш пароль/
Обязательно проверьте в браузере что такой адрес открывается.
!!! после пароля символ/
обязателен - Включаем показ колонки Delta (запрос), для этого идем в настройки MobileBalance Информационное окно и ставим черную (обязательно черную, а не серую) галочку напротив
Изменение баланса относительно предыдущего запроса (Расчетный)
- В 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 Плагины\После запроса, Добавить Редактировать Исполняемый файл Нажимаем на иконку файла и указываем mbplugin\plugin\send_tgbalance.bat (помните что файл может прийти в любое время и ботика тогда имеет смысл замьютить)
- В @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
Если вы хотите настроить бота на нескольких компьютерах, то для каждого компа заводите отдельного бота, иначе они будут конфликтовать.