Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
24 апреля 2024, 19:16

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

В сервис логирования OsEngine добавлен функционал отправки сообщений в Телеграм.

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

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

 

1. Создание бота в Telegram для приема сообщений.

Нам будет нужен бот в самом мессенджере Телеграм. Для его создания используем BotFather – это официальный бот мессенджера, который позволяет создавать ботов и управлять ими.

Ищем его в поиске Телеграм:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Открываем его и начинаем с ним чат (команда “/start” или Запустить):

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

BotFather отвечает списком команд, нам нужна команда – “/newbot” – вводим ее. В ответ предлагается выбрать имя нашему новому боту. Придумываем и вводим, например, “newOSAbot”.

Далее предлагается выбрать имя пользователя, оканчивающееся на “bot”. Делаем его, просто приписав в конец то, что нужно — “newOSAbot_bot”.

Вот так в итоге выглядит диалог создания бота:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

BotFather сообщил нам об успешном создании бота и выдал Токен, который нужно куда-то сохранить. Он нам будет нужен для работы.

При необходимости созданных в BotFather ботов можно настраивать – добавлять описание, команды, устанавливать аватар и прочее.

Далее нам нужно узнать свой Telegram ID. Для этого можно использовать вот этого бота: https://t.me/userinfobot

Запускаем бота, и он выдает нам в ответ ID, сохраняем его рядом с Токеном.

Вот как это выглядит:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Давайте теперь проверим нашего вновь созданного бота. Вводим в поиске Телеграм имя бота (newOSAbot_bot) и запускаем его. Проверить отправку ему сообщений можно в браузере. Для этого в адрес («api.telegram.org/bot + Token + /sendMessage?chat_id= + ID + &text=Hello!») надо вставить наши Токен и ID:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Если все правильно, то в чат с ботом придет приветственное сообщение:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Впоследствии все уведомления от робота OsEngine будут приходить сюда же.

 

2. Пример робота в OsEngine.

Робот пример находится здесь:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Ссылка на исходный код на ГитХаб:

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/Trend/ParabolicSarTrade.cs

 

3. Подключаем робота.

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Даем боту имя, выбираем ParabolicSarTrade, нажимаем «Accept».

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Открываем отдельное окно робота и жмём дважды ЛКМ на таблице с бот-логом:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Откроется окно:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

На вкладке Newsletter настраиваем Telegram server:

1) Выбираем Regime – On;

2) Отмечаем галочками какой тип данных мы хотим получать.

3) Нажимаем Configure Telegram.

4)Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

  1. Заполняем Bot token;
  2. Заполняем Chat ID;
  3. Ставим галочку, если хотим принимать команды от телеграм-бота;
  4. Нажимаем «Accept».

5) Нажимаем кнопку «Accept» пункт 4 на предыдущем окне.


Для каждого бота таким же образом выполняем настройки принимаемых сообщений.

Ниже пример работы бота с включенными командами.

При снятой галочке «Processing Command from Telegram» кнопки команд в телеграм-боте отображаться не будут.

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Для того, чтобы иметь возможность принимать и обрабатывать команды, нужно в конструкторе вашего торгового бота подписаться на событие TelegramCommandEvent.

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Приватное поле _lastRegime служит для запоминания состояния бота перед его отключением.

В приватном методе TelegramCommandHandler осуществляется обработка поступивших команд.

В данный момент это – StopAllBots, StartAllBots, CancelAllActiveOrders и GetStatus.

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Логику обработки команд определяете вы сами. Выше простейший пример использования.

В остальных местах тип сообщений остается обычным.

 

4. Рассылка из Коннекторов.

Точно также настраивается отправка сообщений из лога подключений:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Включаем те типы сообщений, которые хотим видеть в телеграме:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

После чего лог сервера идёт в телеграм.

Получили лог в OsEngine:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Получили лог в Телеграм:

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Сообщения об ошибках выделяются подчеркиванием.

Подключение делал 

Stanislav Gribanov

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

Профиль на ГитХаб: https://github.com/SGribanov

Профиль на СмартЛаб: https://smart-lab.ru/profile/stanislav_g_9yc/

Удачных алгоритмов!

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

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

Стандартный сервер общения с Telegram через ЛОГ и из Роботов для Os Engine.

2 Комментария
  • Алексей Теперев
    24 апреля 2024, 19:32
    Полезная функция. Теперь не нужно самому что-то придумывать. Всё есть «из коробки».
    • Алексей Ван <o-s-a.net>
      24 апреля 2024, 19:36
      Алексей Теперев, 

      Спасибо комьюнити со Смарт-Лаб. 

      Подрастают программисты. Помогают уже и помимо коннекторов. 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн