Erro ao tentar enviar foto pelo Telegram

 

Alguem poderia me esclarecer onde está o erro?

Estou tentando enviar um prnt da tela, junto com a mensagem no telegram, fiz meu codigo seguindo este artigo, mas aparentemente a biblioteca está com algum erro, pois até o codigo do proprio artigo está retornando este mesmo erro:


No meu codigo ficaria assm:

   for(int i=0; i<bot.ChatsTotal(); i++)
     {
      CCustomChat *chat=bot.m_chats.GetNodeAtIndex(i);
      string text=chat.m_new_one.message_text;

      //--- início
      if(RSI[1] < 70 && novabarra()==true)
        {
         string msg=StringFormat("Sinal de Venda\nPapel: %s\nTimeframe: %s\nPreço: %s\nHora: %s",
                                 _Symbol,
                                 StringSubstr(EnumToString(_Period),7),
                                 DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits),
                                 TimeToString(time[0]));
         bot.SendMessage(chat.m_id,msg);
         bot.SendPhoto(lalalalala);
     }
  }

Mas ao tentar usar bot.SendPhoto retorna esse erro.  'SendPhoto' - no one of the overloads can be applied to the function call


Como criar bots para Telegram em MQL5
Como criar bots para Telegram em MQL5
  • www.mql5.com
Durante a conferência F8, realizada em San Francisco em 12 de abril de 2016, o Facebook anunciou a integração da API para bots dentro do Messenger. No mesmo dia, uma grande atualização foi realizada na plataforma Bot do Telegram. A versão 2.0 foi uma surpresa agradável com a sua funcionalidade. Parece que os bots que costumavam ser populares na...
 
HENRIQUE ARAUJO DOS SANTOS:




Henrique, você que mesmo que isto funcione?

bot.SendPhoto(lalalalala);


SendPhoto

int SendPhoto(const long   chat_id,
              const string local_path,
              string       &photo_id,
              const string caption=NULL,
              const bool   common_flag=false,
              const int    timeout=10000)

ou


int SendPhoto(const long chat_id,
              const string photo_id,
              const string caption=NULL)
 
Rogerio Giannetti Torres:


Henrique, você que mesmo que isto funcione?


SendPhoto

O meu codigo não está assim... kkkk... 

Agora eu consigo compilar o codigo, porém ele está dando Bad Request.

for(int i=0; i<bot.ChatsTotal(); i++)
     {
      CCustomChat *chat=bot.m_chats.GetNodeAtIndex(i);
      //--- se a mensagem não foi processada
      if(!chat.m_new_one.done)
        {
         chat.m_new_one.done=true;
         string text=chat.m_new_one.message_text;

         //--- início
         if(text=="/start")
            bot.SendMessage(chat.m_id,"Olá! Bem-vindo! \xF4CA");

         //--- cotacoes

         if(text==_Symbol){
            bot.SendMessage(chat.m_id,_Symbol + ": " + DoubleToString(SymbolInfoDouble(_Symbol, SYMBOL_LAST), 1));
            }
            
            //Removendo
            if(text=="/sair"){
             bot.SendMessage(chat.m_id,"Removido de "+_Symbol);
             ExpertRemove();
            }
            
            if(text=="/print")
              {
               ChartScreenShot(0,"Print.png",800,800,ALIGN_CENTER);
               bot.SendPhoto(chat.m_id,"Print.png",NULL);
              }

        }
     }


Ao acionar o comando /print, ele tira o print normalmente, fica na pasta files, mas não envia. 

 
HENRIQUE ARAUJO DOS SANTOS:

O meu codigo não está assim... kkkk... 

Agora eu consigo compilar o codigo, porém ele está dando Bad Request.


Ao acionar o comando /print, ele tira o print normalmente, fica na pasta files, mas não envia. 

Olá @HENRIQUE ARAUJO DOS SANTOS, conseguiu resolver?

 
Luigi Nunes Labigalini:

Olá @HENRIQUE ARAUJO DOS SANTOS, conseguiu resolver?

Olá Luigi! Infelizmente não, acabei deixando de lado. 

 
HENRIQUE ARAUJO DOS SANTOS:

Olá Luigi! Infelizmente não, acabei deixando de lado. 

Eu falaria pra comecar com o problema que mais se repete que eh aquele do multiplas instancias rodando. Talvez tu deveria separar o publicador no telegram do analisador. Outra coisa que parece ser interessante seria talvez o publicador ser um servico (script rodando sem grafico atrelado).
 

Acrescentei as seguintes linhas:


protected:

   CList             m_chats;



Aqui funcionou.


Ok thanks!!

 
HENRIQUE ARAUJO:

Alguem poderia me esclarecer onde está o erro?

Estou tentando enviar um prnt da tela, junto com a mensagem no telegram, fiz meu codigo seguindo este artigo, mas aparentemente a biblioteca está com algum erro, pois até o codigo do proprio artigo está retornando este mesmo erro:


No meu codigo ficaria assm:

Mas ao tentar usar bot.SendPhoto retorna esse erro.  'SendPhoto' - no one of the overloads can be applied to the function call


Tente esse código:

void send_notification_telegram_photo(string descripton)
  {
   if(USING_NOTIFICATION_TELEGRAM == true)
     {
      int WIDTH  = 800;     // largura da imagem
      int HEIGHT = 600;     // altura da imagem
      string name = "PRINT_TESTE_"+MAGIC_NUM+".png";
      if(ChartScreenShot(0,name,WIDTH,HEIGHT,ALIGN_RIGHT))
         Print("Nós salvamos a captura de tela ",name);
      else
         Print("GetLastError()         "+GetLastError());

      string code =  bot.SendPhoto(name,TELEGRAM_CHANNEL_NAME,name,descripton);
      Print("CODE          "+code);
     }
  }

Observe que eu uso a função ChartScreenShot() , Ela tira print do grafico e salva dentro da pasta /Files.


Depois da imagem salva, voce envia ela passando o nome da imagem em  'bot.SendPhoto()'

Documentação sobre MQL5: Operações de Gráficos / ChartScreenShot
Documentação sobre MQL5: Operações de Gráficos / ChartScreenShot
  • www.mql5.com
ChartScreenShot - Operações de Gráficos - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
Razão: