Discussão do artigo "Como criar bots para Telegram em MQL5" - página 3

 

Andrey, obrigado pelo artigo!

Você pode me dizer como implementar o envio de mensagens para um bot no modo mais simples - bate-papos privados.

Seria possível enviar mensagens para um bot específico por meio de SendMessage().

Tenho essa implementação em outra plataforma, agora estou mudando para o mt5 e quero fazer tudo de maneira semelhante.

No Telegram:

- via @BotFather criou um bot e recebeu um token.

- Usando o @MyTelegramID_bot, descobri meu ID.

Usando essa combinação de token/ID, as mensagens são enviadas para o bot.

Criei vários bots, um recebe registros, outro recebe erros críticos e o terceiro recebe informações sobre transações. Simples e conveniente.

 
Artem Voytenko:

Diga-me como implementar o envio de mensagens para o bot no modo mais simples - bate-papos privados.

No telegrama:

- via @BotFather criei um bot e recebi um token.

- Por meio do @MyTelegramID_bot, descobri minha ID.

Com a ajuda desse mapeamento de token/ID, as mensagens são enviadas para o bot.

Sua tarefa pode ser resolvida da seguinte maneira:

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

Seu problema pode ser resolvido assim:

Muito obrigado! Funcionou! Eu estava passando meu ID como um termo para SendMessage e é por isso que não funcionou)

 
Como posso enviar negociações do meu MT4 para um PHP personalizado?
 
Tatu Francis:
Como posso enviar negociações do meu MT4 para um PHP personalizado?
É fácil. Use a funçãoWebRequest.
 

Andrew, aqui está outro problema.

Tenho um arquivo ExpertHelper.mqh.

Nele, escrevo minhas funções. Depois, eu o conecto ao Expert Advisor e uso essas funções.

Em caso de erros e notificações, uso construções semelhantes Print("Error in function ",__FUNCTION__);

Mas como posso me livrar do print e usar o telegrama em funções dentro do arquivo ExpertHelper.mqh?

O que faria com que a string print se transformasse de fato em bot.SendMessage(1111111, "Error in function "+__FUNCTION__);

Não posso conectar o Telegram.mqh no arquivo mqh, criar uma instância e, em seguida, ativá-la por meio do OnStart/OnInit, posso?

 

Artem Voytenko:

Não posso conectar o Telegram.mqh no arquivo mqh, criar uma instância e, em seguida, ativá-la por meio do OnStart/OnInit, posso?

1.Внутри вашего хэдера ExpertHelper.mqh пишем

#include <Telegram.mqh>
CCustomBot bot;

2.Внутри ваших функций в случае ошибки делаем

if(error)
{
 bot.SendMessage(1111111,"Erro na função "+__FUNCTION__);
}

3.В эксперте в OnInit указываем

bot.Token("44444444:BAEBtZLrOnLW5IxkQaYsNxA5iQimPNEMfRk");
 
Andrey Voytenko:
Andrew, muito obrigado! Funcionou!
 

Como posso chamar a função na classe em OnCalculate? para enviar uma captura de tela quando preciso com um botão, por exemplo

Obrigado pela atenção

 

Olá, depois de executar getme_result=bot.GetMe(), o resultado é 4014. Mas, por meio da consulta no navegador, ele gera{"ok":true, "result":{"id":262104403, "first_name": "InvestorBOT", "username": "investorinfo_bot"}}

Você pode me dizer qual é o problema?

Corrigido: Foi necessário adicionar https://api.telegram.org à lista de URLs permitidos