В сервис логирования OsEngine добавлен функционал отправки сообщений в Телеграм.
Там же добавлена возможность принимать и обрабатывать команды от своего Телеграм-бота.
Нам будет нужен бот в самом мессенджере Телеграм. Для его создания используем BotFather – это официальный бот мессенджера, который позволяет создавать ботов и управлять ими.
Ищем его в поиске Телеграм:
Открываем его и начинаем с ним чат (команда “/start” или Запустить):
BotFather отвечает списком команд, нам нужна команда – “/newbot” – вводим ее. В ответ предлагается выбрать имя нашему новому боту. Придумываем и вводим, например, “newOSAbot”.
Далее предлагается выбрать имя пользователя, оканчивающееся на “bot”. Делаем его, просто приписав в конец то, что нужно — “newOSAbot_bot”.
Вот так в итоге выглядит диалог создания бота:
BotFather сообщил нам об успешном создании бота и выдал Токен, который нужно куда-то сохранить. Он нам будет нужен для работы.
При необходимости созданных в BotFather ботов можно настраивать – добавлять описание, команды, устанавливать аватар и прочее.
Далее нам нужно узнать свой Telegram ID. Для этого можно использовать вот этого бота: https://t.me/userinfobot
Запускаем бота, и он выдает нам в ответ ID, сохраняем его рядом с Токеном.
Вот как это выглядит:
Давайте теперь проверим нашего вновь созданного бота. Вводим в поиске Телеграм имя бота (newOSAbot_bot) и запускаем его. Проверить отправку ему сообщений можно в браузере. Для этого в адрес («api.telegram.org/bot + Token + /sendMessage?chat_id= + ID + &text=Hello!») надо вставить наши Токен и ID:
Если все правильно, то в чат с ботом придет приветственное сообщение:
Впоследствии все уведомления от робота OsEngine будут приходить сюда же.
Робот пример находится здесь:
Ссылка на исходный код на ГитХаб:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/Trend/ParabolicSarTrade.cs
Даем боту имя, выбираем ParabolicSarTrade, нажимаем «Accept».
Открываем отдельное окно робота и жмём дважды ЛКМ на таблице с бот-логом:
Откроется окно:
На вкладке Newsletter настраиваем Telegram server:
1) Выбираем Regime – On;
2) Отмечаем галочками какой тип данных мы хотим получать.
3) Нажимаем Configure Telegram.
5) Нажимаем кнопку «Accept» пункт 4 на предыдущем окне.
Для каждого бота таким же образом выполняем настройки принимаемых сообщений.
Ниже пример работы бота с включенными командами.
При снятой галочке «Processing Command from Telegram» кнопки команд в телеграм-боте отображаться не будут.
Для того, чтобы иметь возможность принимать и обрабатывать команды, нужно в конструкторе вашего торгового бота подписаться на событие TelegramCommandEvent.
Приватное поле _lastRegime служит для запоминания состояния бота перед его отключением.
В приватном методе TelegramCommandHandler осуществляется обработка поступивших команд.
В данный момент это – StopAllBots, StartAllBots, CancelAllActiveOrders и GetStatus.
Логику обработки команд определяете вы сами. Выше простейший пример использования.
В остальных местах тип сообщений остается обычным.
Точно также настраивается отправка сообщений из лога подключений:
Включаем те типы сообщений, которые хотим видеть в телеграме:
После чего лог сервера идёт в телеграм.
Получили лог в OsEngine:
Получили лог в Телеграм:
Сообщения об ошибках выделяются подчеркиванием.
Подключение делал
Профиль на ГитХаб: https://github.com/SGribanov
Профиль на СмартЛаб: https://smart-lab.ru/profile/stanislav_g_9yc/
Удачных алгоритмов!
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php
Спасибо комьюнити со Смарт-Лаб.
Подрастают программисты. Помогают уже и помимо коннекторов.