Обсуждение статьи "Создание бота для Telegram на языке MQL5" - страница 2

 
Спасибо огромное. Все работает. 
 
Я реализовал контроль и управление советником через систему сообщений и оповещений. В отдельный канал я получаю отчеты о его состоянии и проделанной работе, а через личную переписку с ботом я могу изменять настройки советника. Но тут у меня возник вопрос: Если вдруг каким то образом кто-то узнает имя бота и стартовые команды то ничто не помешает найти его через поиск и также управлять советником. Можно ли каким то образом сделать так чтобы бот мог принимать сообщения и обрабатывать их только от меня ?
 
Dmitri Custurov:
Можно ли каким то образом сделать так чтобы бот мог принимать сообщения и обрабатывать их только от меня ?
В базовом классе СCustomBot реализован сеттер UserNameFilter - это "белый список" пользователей от которых разрешено обрабатывать сообщения. @username пользователей можно перечислить через пробел, запятую или почку с запятой.
 
Ок, Спасибо. Если напрямую с ботом общаться, то работает, если я состою в группе и пишу ему из группы то не отвечает.
 
Dmitri Custurov:
Ок, Спасибо. Если напрямую с ботом общаться, то работает, если я состою в группе и пишу ему из группы то не отвечает.

Попробуйте скорректировать код в Telegram.mqh

//строка 492
//--- filter
if(m_users_filter.Total()==0 || (m_users_filter.Total()>0 && m_users_filter.SearchLinear(msg.from_username)>=0))
 
И снова работает. Спасибо...)))
 

Андрей, спасибо за статью!

Скажите, а как реализовать отправку сообщений боту в самом простом режиме - приватные чаты.

Что бы через SendMessage() отправлять сообщения на конкретного бота.

 

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

 

В телеграме:

- через @BotFather создал бота и получил токен.

- через @MyTelegramID_bot узнал свой ID.

 

С помощью этой связки token/ID отправляются сообщения на бота.

Создано несколько ботов, один получает логи, другой критические ошибки, третий информацию по сделкам. Просто и удобно.

 
Artem Voytenko:

Скажите, а как реализовать отправку сообщений боту в самом простом режиме - приватные чаты.

В телеграме:

- через @BotFather создал бота и получил токен.

- через @MyTelegramID_bot узнал свой ID.

С помощью этой связки token/ID отправляются сообщения на бота.

Вашу задачу можно решить так:

#include <Telegram.mqh>
CCustomBot bot;
//+------------------------------------------------------------------+
void OnStart()
  {
   bot.Token("44444444:BAEBtZLrOnLW5IxkQaYsNxA5iQimPNEMfRk"); //set token
   bot.SendMessage(1111111,"your text"); //1111111 - this is your ID
  }
//+------------------------------------------------------------------+
 
Andrey Voytenko:

Вашу задачу можно решить так:

 Спасибо огромное! Получилось! Я ID свой в виде сроки передавал в SendMessage вот и не работало )

 

Андрей, еще вот такая проблема.

 

У меня есть файл ExpertHelper.mqh

В котором я пишу свои функции. Потом подключаю его в эксперте и использую эти функции.

В функциях в случае ошибок и каких либо уведомлений использую подобные конструкции Print("Ошибка в функции ",__FUNCTION__);

А вот как мне уйти от print и использовать телеграм в функциях внутри файла ExpertHelper.mqh?

Что бы строка print превратилась фактически в  bot.SendMessage(1111111,"Ошибка в функции "+__FUNCTION__);

 

 Я ведь не могу в mqh файле подключить Telegram.mqh, создать экземпляр и затем через OnStart/OnInit его включить?

Причина обращения: