Discusión sobre el artículo "Cómo crear un bot para Telegram en el lenguaje MQL5" - página 34

 
Andrey Khatimlianskii:

Si el bot está en el canal y tiene permiso para enviar mensajes, puedes hacerlo.

El bot se añade a los administradores del canal y tiene derecho a enviar mensajes. Envía mensajes al canal público, pero en cuanto lo hago privado, empieza a escribir "Bad request". ¿Entiendo que tengo que sustituir el enlace al canal (para la versión pública) por un enlace a la versión privada del canal...? ¿O cómo hacerlo correctamente?

 
Yevhenii Levchenko:

El bot se añade a los administradores del canal y tiene derecho a enviar mensajes. Envía mensajes al canal público, pero en cuanto lo hago privado, empieza a escribir "Bad request". ¿Entiendo que tengo que sustituir el enlace al canal (para la versión pública) por un enlace a la versión privada del canal...? ¿O cómo hacerlo correctamente?

¿Te refieres al canal privado?
 
Aleksei Beliakov:
¿Se refiere al canal privado?


 
puedes enviarlo, envíalo por id de canal.
 
Aleksei Beliakov:
puedes enviarlo, envíalo por id de canal.
¡Muchas gracias!
 

A veces, al intentar enviar una captura de pantalla de un gráfico, dice: "Error: Error desconocido 5020" - el archivo no existe. Aunque está presente en la carpeta Archivos. Esto ocurre a veces. A veces publica todo seguido (hago más de 3 segundos de retraso entre el envío de mensajes). El algoritmo en sí es el siguiente: el bot abre un gráfico, mueve el gráfico a la posición más a la derecha, crea flechas (niveles de precios), toma una captura de pantalla, lo envía (después de enviar un retraso de 3 segundos sólo ... sin que por alguna razón no quiera enviarlo), borra las flechas y después de comprobar la presencia del archivo lo borra. O no lo borra. Si el bot da error 5020 al enviar, la función FileIsExist devuelve un sinsentido. Intenté establecer retardos tras la creación del fichero, pero no sirvió de mucho. Envío a un canal abierto. La extensión es .gif.

¿Qué tan mala es esta solución (enviar capturas de pantalla así)? Probablemente el código está lejos de ser ideal, pero ¿por qué no quiere enviar capturas de pantalla? O mejor dicho, a veces las envía normalmente, y a veces no quiere enviarlas. Internet parece ser normal...

 if(ScreenShotsAllowed) {
               long chartID = ChartOpen(symbolName,PERIOD_CURRENT);

               ResetLastError();
               if(!ChartNavigate(chartID,CHART_CURRENT_POS,WindowFirstVisibleBar())) {
                  Print ("Error at ChartNavigate: ", GetLastError());
               }

               createArrow(chartID,SymbolInfoDouble(symbolName,SYMBOL_BID),Time[0],BuyArrowCode,arrowBuy,clrDarkSlateGray);
               createArrow(chartID,SymbolInfoDouble(symbolName,SYMBOL_BID)+candleSize[i]*Target_1,Time[0],Target_1_Code,target_1,TpTargetColor);
               createArrow(chartID,SymbolInfoDouble(symbolName,SYMBOL_BID)+candleSize[i]*Target_2,Time[0],Target_2_Code,target_2,TpTargetColor);
               createArrow(chartID,SymbolInfoDouble(symbolName,SYMBOL_BID)+candleSize[i]*Target_3,Time[0],Target_3_Code,target_3,TpTargetColor);
               createArrow(chartID,low[i]-bufferSell[i],iTime(symbolName,PERIOD_CURRENT,0),SlCode,sl,SlTargetColor);

               ResetLastError();
               string filename = symbolName+fileExtension;
               PrintFormat("Filename: %s",filename);
               if(!ChartScreenShot(chartID,filename,(int)ChartGetInteger(chartID,CHART_WIDTH_IN_PIXELS,0),
                                   (int)ChartGetInteger(chartID,CHART_HEIGHT_IN_PIXELS,0),ALIGN_RIGHT)) {
                  Print ("Error at ChartScreenShot: ", GetLastError());
               } else {

                  string photo_id;
                  int result=bot.SendPhoto(photo_id,InpChannelName,filename,"screenshot");

                  if(result==0) {
                     Sleep(Delay);
                     Print("Photo ID: ",photo_id);
                     deleteObjects(chartID);
                  } else
                     Print("Error: ",GetErrorDescription(result));
                  if(FileIsExist(filename)) {
                     ResetLastError();
                     if(!FileDelete(filename)) {
                        PrintFormat("Cant delete file: %s, err code: %d",filename,GetLastError());
                     }else
                     PrintFormat("Deleted file: %s",filename);
                  }
               }

               ChartClose(chartID);
            }
 
Yevhenii Levchenko:

A veces, al intentar enviar una captura de pantalla de un gráfico, dice: "Error: Error desconocido 5020" - el archivo no existe. Aunque está presente en la carpeta Archivos. Esto ocurre a veces. A veces publica todo seguido (hago más de 3 segundos de retraso entre el envío de mensajes). El algoritmo en sí es el siguiente: el bot abre un gráfico, mueve el gráfico a la posición más a la derecha, crea flechas (niveles de precios), toma una captura de pantalla, lo envía (después de enviar un retraso de 3 segundos sólo ... sin que por alguna razón no quiera enviarlo), borra las flechas y después de comprobar la presencia del archivo lo borra. O no lo borra. Si el bot da error 5020 al enviar, la función FileIsExist devuelve un sinsentido. Intenté poner retardos tras la creación del fichero, pero no sirvió de mucho. Envío a un canal abierto. La extensión es .gif.

¿Qué tan mala es esta solución (enviar capturas de pantalla así)? Probablemente el código está lejos de ser ideal, pero ¿por qué no quiere enviar capturas de pantalla? O mejor dicho, a veces las envía normalmente, y a veces no quiere enviarlas. Internet parece ser normal...

Mira, hubo una discusión.

El archivo no tiene tiempo para grabar, hay que esperar.

 

Yo uso Chat_ID y escribo el enlace 2 en el MT5, pero todavía tiene error

"Error: Error desconocido 1001"

¿Puede alguien saber lo que está mal? Por favor ayuda



 
To Pui Kuen:

Gracias, ¿cómo puedo obtener el chat_id?

reenviar mensaje desde canal privado a @getidsbot

[Eliminado]  
Tengo este error:

'SendPhoto' - no se puede aplicar ninguna de las sobrecargas a la llamada de función Telegram_Bot_EA.mq5 117 24


Al compilar telegram_bot MT5