int res=bot.SendMessage(-100135482 xxx,"Running a test " +TimeToString(TimeCurrent()));
int ac=bot.SendChatAction(-100135482 xxx,ACTION_UPLOAD_PHOTO);
int pic=bot.SendPhoto(filepath+"\mypic.gif",-100135482 xxx,filepath);
2020.08.19 15:56:04.830 Moving Average Signal To Alert (RTSRIU0,M1) Error: URL is not allowed forWebRequest.
2020.08.19 15:54:01.332 Moving Average Signal To Alert (RTSRIU0,M1) exit channel https://api.telegram.org/bot1234567:AAHwDJwwrh-m16O0EoIA7--3BG0I5ayk3E0/sendMessage chat_id=@MyTestSignal&text=HELLO
Bots are third-party applications that run inside Telegram. Users can interact with bots by sending them messages, commands and inline requests. You control your bots using HTTPS requests to our Bot API. 1. What can I do with bots? To name just a few things, you could use bots to: Get customized notifications and news . A bot can act as a smart...
皆さん、こんにちは、
MT4経由でローカルのスクリーンショットをTelegramに送信するソリューションを必死に探しています。
簡単なコードを抜粋しました。
最初のものは、@channelnameを使っても、メッセージを受け取ることができます。
2番目のものは、chatIDでのみ動作します。
3番目はエラーになります:
2020.08.07 21:40:15.175 xxx1: {"ok":false, "error_code":400, "description": "Bad Request: chat not found"}.
何か思い当たることはありますか?
みなさん、こんにちは、
MT4からTelegramにローカルのスクリーンショットを送信する方法を必死に探しています。
簡単なコード
最初のものは、@channelnameを使ってもメッセージを受け取れるので、うまくいっています。
2番目のものはchatIDでのみ動作します。
3つ目はエラーを投げます:
2020.08.07 21:40:15.175 xxx1: {"ok":false, "error_code":400, "description": "Bad Request: chat not found"}.
何か思い当たることはありますか?
そうですね、mqhファイルを修正して、負の数を受け入れるようにする必要があります。
Marco vd Heijden ありがとう!
Telegram.mqhを見てみたら、SendPhotoの関数が3つあった。3つ目はとにかく問題外です。
一つ目
2つ目:
もしかして、コードは私がどれを使いたいのかわかっていないのでしょうか?私は最初のものをトリガーしようとしていますが、実際には2番目のものの方がいいでしょう。
第二に、_chat_idで何が起こっているのかを最初の関数で検索してみましたが、単純な整数から文字列への変換しか見当たりません:
2番目のパラメータは、1つはlongで、もう1つは文字列である。
そして
これはmqlの基本の一部であり、同じ名前の関数を 異なるパラメータやパラメータ数で100万個持つことができる。
ジェファーソン・メサ......はい、それは理解しています。問題を見つけるのがとても大変だったので、そう思っただけです。
https://www.mql5.com/en/forum/89826/page15#comment_17079865 に書かれているヒントを使いましたが、まだ埒があきません。
入力がチャットIDではなくチャンネル名であるsendPhoto関数に集中したいので、一つのことに集中しましょう。
今までにやったことは、Telegarm.mqhの関数内の
以下の行を修正した:
基本的にStringTrim関数を削除しているが、なかなか改善されない。
やっと分かった。
変更点
削除:
そして最後にEAで、単純なように:
こんにちは。
詳しい記事をありがとう。とても参考になりました。
WEBリクエストがうまくいかないことに遭遇しました。
エラーが出ます。
2020.08.19 15:56:04.830 Moving Average Signal To Alert (RTSRIU0,M1) Error: URL is not allowed forWebRequest.
調べてみると、/sendmessageの後の?( question)が抜けていることが判明しました。
これはまだ修正されていないのでしょうか?新しいバージョンはありますか?
自分で直します。
インジケーターからテレグラムにテキストを送信しています。しかし、リクエストのタイプをPOSTからGETに変更する必要がありました。
POSTで送信するとエラー400が出ます。EAから同じコードを送信すると(ただし、_WebRequestの代わりにWebRequestを使用)、コードはPOSTモードで動作します。GETメソッドではリクエストの長さに制限があるのですが、どこを見ればいいのか教えてください。
エラーとGETでもエラー400...
2020.08.21 08:52:20.138 testWININET GBPUSD,M1: Error loading 'https://api.telegram.org/bot123123123:ываываыукаыва /sendMessage?chat_id=-123123123&parse_mode=HTML&text=Hello', code 400
ブラウザから送信すると、リクエストは通る。
#プロパティリンク "https://www.mql5.com"
#プロパティ version "1.00"
#プロパティ strict
#プロパティ indicator_chart_window
//#include <Wininet.mqh>
<Webrequest_dll.mqh> をインクルードする。
#define telegramBaseURL "https://api.telegram.org"
//https://tlgrm.ru/docs/bots/api、何をどのように送信するかを読む
入力文字列 inpToken="11111212:vapvapYVVAEFfer";///Token
入力文字列 inpChat_id="-3123123123213";
bool inpParsMode =true;
int OnInit()
{
文字列データ;
string url="https://api.telegram.org/bot" + inpToken + "/sendMessage?chat_id="+inpChat_id;
if(inpParsMode){
url = url + "&parse_mode=HTML"
}
// url = url + "&text= " + "<b>1114</b>"
// url = url + "&text= " + "<i>1114</i>";
url = url + "&text=" + "1118";
(url)をプリントする;
文字列 cookie=NULL,ヘッダー;
char post[],result[];
int res=_WebRequest("GET",url,cookie,NULL,500,post,0,result,headers);
if(res==-1)
{
Print("WebRequestでエラーが発生しました。エラーコード =",GetLastError());
//--- URL がリストにない可能性があるので、追加する必要がある旨のメッセージを表示します。
MessageBox("アドレス '"+url+"' を 'Advisors' タブの許可された URL のリストに追加する必要があります", "エラー",MB_ICONINFORMATION);
}
else
{
if(res==200)
{
//--- ダウンロード成功
PrintFormat("File successfully uploaded, size %d bytes.",ArraySize(result));
//PrintFormat("Server headers: %s",headers);
//--- ファイルにデータを保存
int filehandle=FileOpen("url.htm",FILE_WRITE|FILE_BIN);
if(filehandle!=INVALID_HANDLE)
{
//--- result[]配列の内容をファイルに保存する。
FileWriteArray(filehandle,result,0,ArraySize(result));
//--- ファイルを閉じる
FileClose(filehandle);
}
else
Print("FileOpenでエラーが発生しました。エラー・コード =",GetLastError());
}
else
PrintFormat("Error loading '%s', code %d",url,res);
}
// ReadUrl(url,data);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| カスタム・インジケータ反復関数
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total、
const int prev_calculated、
const datetime &time[]、
const double &open[]、
const double &high[]、
const double &low[]、
const double &close[]、
const long &tick_volume[]、
const long &volume[]、
const int &spread[])
{
//---
//--- 次の呼び出しのためにprev_calculatedの値を返す
return(rates_total);
}
//+------------------------------------------------------------------+