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

 
Andrey Khatimlianskii:

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

Бот добавлен в администраторы канала и есть право отправки сообщений. В публичный канал отправляет, но как только делаю закрытым , то начинает писать "Bad request". Там, как понимаю, нужно заместо ссылки на канал (для публичной версии) подставить ссылку на приватную версию канала...? Или как тут корректно все сделать?

 
Yevhenii Levchenko:

Бот добавлен в администраторы канала и есть право отправки сообщений. В публичный канал отправляет, но как только делаю закрытым , то начинает писать "Bad request". Там, как понимаю, нужно заместо ссылки на канал (для публичной версии) подставить ссылку на приватную версию канала...? Или как тут корректно все сделать?

Ты про приватный канал?
 
Aleksei Beliakov:
Ты про приватный канал?

Да

 
можно посылать , посылай по id канала
 
Aleksei Beliakov:
можно посылать , посылай по id канала
Спасибо большое!
 

Иногда, при попытке отправить скриншот графика, пишет: "Error: Unknown error 5020" - файла не существует. Хотя в папке Files он присутствует. Такое повторяется иногда. Иногда все подряд публикует (более 3 секунд задержки между отправкой сообщений делаю). Сам алгоритм выглядит следующим образом: бот открывает график, переводит график у крайнюю правую позицию, создает стрелки (уровни ценовые), делает скриншот, отправляет его (после отправки задержка в 3 секунды как раз... без нее не хочет почему-то отправлять), удаляет стрелки и после проверки на наличие файла удаляет его. Или не удаляет. Если бот при отправке выдает ошибку 5020, то и функция FileIsExist возвращает брехню. Пробовал ставить задержки после создания файла не очень помогало. Отправляю в открытый канал. Расширение .gif.

Насколько это решение плохое (вот так отправлять скриншоты)? Код наверное далекий от идеала, но почему не хочет слать скрины? Вернее иногда нормально шлет , а иногда совсем не хочет. Интернет вроде нормальный...

 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:

Иногда, при попытке отправить скриншот графика, пишет: "Error: Unknown error 5020" - файла не существует. Хотя в папке Files он присутствует. Такое повторяется иногда. Иногда все подряд публикует (более 3 секунд задержки между отправкой сообщений делаю). Сам алгоритм выглядит следующим образом: бот открывает график, переводит график у крайнюю правую позицию, создает стрелки (уровни ценовые), делает скриншот, отправляет его (после отправки задержка в 3 секунды как раз... без нее не хочет почему-то отправлять), удаляет стрелки и после проверки на наличие файла удаляет его. Или не удаляет. Если бот при отправке выдает ошибку 5020, то и функция FileIsExist возвращает брехню. Пробовал ставить задержки после создания файла не очень помогало. Отправляю в открытый канал. Расширение .gif.

Насколько это решение плохое (вот так отправлять скриншоты)? Код наверное далекий от идеала, но почему не хочет слать скрины? Вернее иногда нормально шлет , а иногда совсем не хочет. Интернет вроде нормальный...

Поищите, было обсуждение.

Файл не успевает записаться, нужно ждать.

 

Я использую Chat_ID и ввожу 2 ссылки в MT5, но все равно возникает ошибка

"Ошибка: Неизвестная ошибка 1001"

Может ли кто-нибудь знать, что не так? Пожалуйста, помогите



 
To Pui Kuen:

Спасибо, как я могу получить chat_id?

переслать сообщение из приватного канала на @getidsbot

[Удален]  
У меня такая ошибка:

'SendPhoto' - ни одна из перегрузок не может быть применена к вызову функции Telegram_Bot_EA.mq5 117 24


При компиляции telegram_bot MT5