記事"MQL5言語でのTelegram用ボットの作成"についてのディスカッション - ページ 3

 

アンドレイ、記事をありがとう!

プライベートチャットという最もシンプルなモードでボットにメッセージを送信する方法を教えてください。

SendMessage()を使って特定のボットにメッセージを送ることは可能です。

私は別のプラットフォームでそのような実装をしていますが、現在mt5に移行しており、同様の方法ですべてを行いたいと思っています。

Telegramで:

- via @BotFatherでボットを作成し、トークンを受け取った。

- MyTelegramID_botを使って自分のIDがわかった。

このトークンとIDの組み合わせを使って、ボットにメッセージが送られる。

私はいくつかのボットを作ったが、1つはログを受信し、もう1つは重大なエラーを 受信し、3つ目は取引に関する情報を受信する。シンプルで便利だ。

 
Artem Voytenko:

プライベートチャットという最もシンプルなモードでボットにメッセージを送信する方法を教えてください。

テレグラムで:

- BotFather経由でボットを作成し、トークンを受け取った。

- MyTelegramID_botを通じて私のIDがわかりました。

このトークンとIDのマッピングを使って、ボットにメッセージが送られる。

あなたのタスクは次のように解決できる:

#include <Telegram.mqh>
CCustomBot bot;
//+------------------------------------------------------------------+
void OnStart()
  {
   bot.Token("44444444:BAEBtZLrOnLW5IxkQaYsNxA5iQimPNEMfRk"); //トークンを設定する
   bot.SendMessage(1111111,"your text"); //1111111 - これがあなたのIDです
  }
//+------------------------------------------------------------------+
 
Andrey Voytenko:

あなたの問題はこのように解決できます:

ありがとうございました!うまくいきました!SendMessageに私のIDを条件として渡していたので、うまくいきませんでした )

 
MT4からカスタムPHPにトレードを送信する方法
 
Tatu Francis:
MT4からカスタムPHPにトレードを送信する方法
簡単です。WebRequest 関数を 使用します
 

アンドリュー、もう一つ問題がある。

ExpertHelper.mqhというファイルがあります。

そこに関数を書いています。それをExpert Advisorに接続して、これらの関数を使用します。

エラーや通知があった場合、私は似たような構文を使います;

しかし、ExpertHelper.mqh ファイル内の関数で、print から離れて電文を使用するにはどうすればよいでしょうか?

print文字列を実際にbot.SendMessage(1111111, "Error in function" +__FUNCTION__)にするにはどうすればいいでしょうか?

mqhファイルにTelegram.mqhを接続してインスタンスを作成し、OnStart/OnInitでスイッチを入れることはできませんよね?

 

Artem Voytenko:

mqhファイルでTelegram.mqhを接続してインスタンスを作成し、OnStart/OnInitで有効にすることはできませんね?

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

#include <Telegram.mqh>
CCustomBot bot;

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

if(error)
{
 bot.SendMessage(1111111,"関数内のエラー"+__FUNCTION__);
}

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

bot.Token("44444444:BAEBtZLrOnLW5IxkQaYsNxA5iQimPNEMfRk");
 
Andrey Voytenko:
アンドリュー、ありがとう!うまくいったよ!
 

OnCalculateでClassの関数を 呼び出すにはどうすればよいですか? 例えばボタンでスクリーンショットを送信したい場合など。

ありがとうございました。

 

こんにちは、getme_result=bot.GetMe()を実行すると、4014が出力されます。しかし、ブラウザでクエリを実行すると、{"ok":true, "result":{"id":262104403, "first_name": "InvestorBOT", "username": "investorinfo_bot"}} と出力されます。

何が問題なのか教えてください。

修正:許可されたURLのリストにhttps://api.telegram.org を追加する必要がありました。