Общие вопросы по разработке > Сообщения себе в телеграм из робота

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Maks
Сообщения: 52
Зарегистрирован: 15 июн 2020, 15:29
Благодарил (а): 8 раз
Поблагодарили: 27 раз

Сообщения себе в телеграм из робота

Непрочитанное сообщение Maks » 25 янв 2023, 16:29

Сделал такую связку, которая позволяет отправлять сообщения себе в телеграм из робота.

1 этап. Создание бота в телеграме и ссылки для отправки сообщений через него.
  1. В telegram в поиске нужно найти бота BotFather (с голубой отметкой - подтвержденного).
    Запустить его и выбрать в меню "Create a new bot".
    Следовать указаниям бота, задать имя своего бота итд - в итоге нужно получить токен вида 123456789:AABB112233ccddasdfghjkl.
    Этот токен нам понадобится.
  2. Запустить созданного бота - перейти в него по ссылке из диалога и нажать Start.
  3. Нужно получить свой user id вида 987654321 - в телеграме в поиске нужно найти бота userinfobot (подтвержденных насколько я понимаю нет, поэтому без голубой отметки),
    Запустить его, получить id.
    Этот id нам понадобится.
  4. Используя полученные данные нужно собрать готовую ссылку для отправки сообщения и убедиться что она работает:
    https://api.telegram.org/bot123456789:AABB112233ccddasdfghjkl/sendMessage?chat_id=987654321&text=проверкасвязи
    выделенные части адреса нужно заменить на свои: первое - токен бота из п.1, второе - user id из п.3, третье - произвольный текст
  5. Открыть ссылку в браузере.
    Должно прийти соотв сообщение в телеграм. Ошибок быть не должно.
    Если всё получилось, переходим к этапу 2).

2 этап. Вызов в коде стратегии
  1. Для удобства делаем Action такого вида (в самом начале функции OnUpdate() ну или хотя бы до первого вызова ;)):

    Код: Выделить всё

    Action<string> t_me = (string msg) => {
          string BOT_TOKEN = "123456789:AABB112233ccddasdfghjkl"; // подставить токен своего бота
          string CHAT_ID = "987654321"; // подставить свой user id
          string URL = "https://api.telegram.org/bot" + BOT_TOKEN + "/sendMessage?chat_id=" + CHAT_ID + "&text=" + msg;
          System.Net.WebResponse resp = System.Net.WebRequest.Create(URL).GetResponse();
       };
    можно скопировать отсюда или из приложенного шаблона)
  2. Добавляем вызовы Action в нужных местах, например, так (в скобках текст сообщения - string):

    Код: Выделить всё

    t_me("проверка связи " + StrategyName);
  3. Компилируем, наслаждаемся работой, Profit!

Шаблон в приложении!) (ниже)
Последний раз редактировалось Maks 11 май 2023, 18:55, всего редактировалось 2 раза.

Maks
Сообщения: 52
Зарегистрирован: 15 июн 2020, 15:29
Благодарил (а): 8 раз
Поблагодарили: 27 раз

Re: Сообщения себе в телеграм из робота

Непрочитанное сообщение Maks » 26 янв 2023, 15:37

ну и чтобы совсем хорошо было, имеет смысл добавить в Action проверку тест-режима, без этого тестирование работать не будет.

Код: Выделить всё

Action<string> t_me = (string msg) => {
   if (!IsTestMode) {
      string BOT_TOKEN = "123456789:AABB112233ccddasdfghjkl"; // подставить токен своего бота
      string CHAT_ID = "987654321"; // подставить свой user id
      string URL = "https://api.telegram.org/bot" + BOT_TOKEN + "/sendMessage?chat_id=" + CHAT_ID + "&text=" + msg;
      System.Net.WebResponse resp = System.Net.WebRequest.Create(URL).GetResponse();
   }
};


TelegramNotify_template.ads
Последний раз редактировалось Maks 12 май 2023, 15:48, всего редактировалось 1 раз.

Аватара пользователя
evge
Администратор
Сообщения: 1811
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 366 раз
Контактная информация:

Re: Сообщения себе в телеграм из робота

Непрочитанное сообщение evge » 27 янв 2023, 03:50

приветствую, спасибо, закрепил сообщение
никогда такого не было и вот опять

Anton
Сообщения: 6
Зарегистрирован: 23 дек 2022, 10:50

Re: Сообщения себе в телеграм из робота

Непрочитанное сообщение Anton » 27 янв 2023, 12:58

По первому пункту все работает.
А по второму при работе робота в режиме советника и робота, сообщения не отправляет.

Скрипт скопировал полностью.

Maks
Сообщения: 52
Зарегистрирован: 15 июн 2020, 15:29
Благодарил (а): 8 раз
Поблагодарили: 27 раз

Re: Сообщения себе в телеграм из робота

Непрочитанное сообщение Maks » 01 фев 2023, 12:59

Anton писал(а):А по второму при работе робота в режиме советника и робота, сообщения не отправляет.
Скрипт скопировал полностью.


В сообщениях робота смотрели? что там написано?


PS У темы 800 просмотров, 25 скачиваний шаблона - у кого-то вообще работает?))

Anton
Сообщения: 6
Зарегистрирован: 23 дек 2022, 10:50

Re: Сообщения себе в телеграм из робота

Непрочитанное сообщение Anton » 03 фев 2023, 11:11

Maks писал(а):
Anton писал(а):А по второму при работе робота в режиме советника и робота, сообщения не отправляет.
Скрипт скопировал полностью.


В сообщениях робота смотрели? что там написано?


PS У темы 800 просмотров, 25 скачиваний шаблона - у кого-то вообще работает?))


Проблема с соединением с сервером, попробую на другом ПК.

Maks
Сообщения: 52
Зарегистрирован: 15 июн 2020, 15:29
Благодарил (а): 8 раз
Поблагодарили: 27 раз

Re: Сообщения себе в телеграм из робота

Непрочитанное сообщение Maks » 12 май 2023, 15:46

тут выяснилось, что у телеграмма есть ограничения на отправку сообщений в бота - не более 1 в сек и не более 20 в мин
Потом бан от телеграма на какое-то время, ссылка возвращает роботу ошибку, робот выключается.
Что конечно неправильно)

В приложении вариант, решающий эту проблему.
Во-первых, задержка в секунду между отправками избавляет от этих ошибок (если упираетесь во второй лимит - увеличивайте еще задержку), во-вторых, робот не выключается даже если ошибка отправки в тг всё-таки возникнет.
TelegramNotify_template.ads
(950 байт) 1109 скачиваний

кто пользуется - пишите отзывы)


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей