【MT4】LINE通知(Messaging API)
無料
Messaging APIを利用してLINE通知を送信する無料ソースコードです。
Description
■商品概要
MT4からLINEに通知を送信することができるプログラムのソースコードです。
MT4からLINE通知を送信する方法としてLINE Notifyというサービスが主流でしたが2025年3月いっぱいでLINE Notifyを使用することができなくなりました。
LINE公式はLINE Notifyの代わりに「Messaging API」を代替方法として利用することを推奨しており、本商品はMessaging APIを使用したLINE通知を送信するソースコードです。
■使い方
1.下準備
LINE通知を送信するために、「チャネルアクセスコード」と「ユーザーID」の2つの情報を取得する必要があります。
・LINE Developersにログイン
LINE Developersのサイトにアクセスして、右上の「コンソールにログインボタン」をクリックしてください。すると以下の画面が出てきますので、ご自身のラインアカウントにログインしてください。
・プロバイダーの作成
「新規プロバイダー作成」というボタンから新たにプロバイダーを作成してください。
プロバイダー名は任意の名前を付けてください。
・LINE公式アカウントの作成
続いてLINEの公式アカウントを作成します。公式アカウントといってもいろいろなユーザーとつながるわけではなく、LINE通知用の自分の別アカウントのようなものです。
チャネル作成後の画面の中から、「Messaging API」をクリックし、「LINE公式アカウントを作成する」ボタンをクリックしてください。
アカウントにログインすると、LINE公式アカウントを作成するフォームが出てくるため、任意の値を入力してください。
アカウントに成功すると以下の画面が表示されますので、「LINE Official Account Managerへ」のボタンをクリックしてください。
利用規約の同意画面が出てくる場合は確認後同意してください。
・Messaging APIの設定
LINE公式アカウントの管理画面で先ほど作成した公式アカウントを選択し、右上の「設定」→「Messaging API」→「Messaging APIを利用する」をクリックしてください。
するとウィンドウが出てくるので先ほど作成したプロバイダーを選択してください。途中でプライバシーポリシーと利用規約を入力する画面が出てきますが、個人利用のため空欄のままで大丈夫です。
・ユーザーIDの取得
再びLINE Developersのサイトにアクセスして、右上の「コンソールにログインボタン」からログイン後、作成したプロバイダーを選択してください。
すると作成したチャネルが更新されていますので、こちらをクリックしてください。
すると各種設定画面が出てきます。チャンネル基本設定を選択し、一番下までスクロールしてください。
するとユーザーIDを確認することができるため、このIDを控えておいてください。
・チャネルアクセスコードの発行と取得
続いてチャネルアクセスコードを発行して取得します。
上部タブの「Messaging API設定」をクリックしてください。
そのまま一番下までスクロールするとチャネルアクセストークン(長期)の発行ボタンがあるため、こちらをクリックしてください。
するとチャネルアクセストークンを発行することができますので、こちらを控えておいてください。
(長期)とありますが、このアクセストークンは期限切れにはならずずっと使用することができます。
これで下準備は完了です。
2.ソースコードのダウンロード
本商品を注文すると、ファイルをダウンロードすることができます。
ファイルはzip形式になっているため、ファイルを右クリック→展開をおしてください。
3.mql4ファイルのインストール
ダウンロードしたファイルはそれぞれ以下のフォルダに格納してください。
・S_LINE_API_TXT.mql4
→MQL4/Indicators
・S_LINE_API_TXT.bat
→MQL4/Files
格納したmql4をメタエディターで開きコンパイルしてください。
4.パラメータについて
コンパイル後にMT4のデータフォルダからコンパイルしたex4ファイルをチャートにセットしましょう。
パラメータ設定画面が出てくるため、下準備で入手したチャネルアクセストークンとユーザーIDを入力しましょう。
また、全般タブから「DLLの使用を許可する」にもチェックを入れてください。
OKをクリックするとLINEにメッセージが送信されます。
■コードの解説とカスタマイズ方法
取得したユーザーIDとチャネルアクセストークンはパラメータから入力するようにしています。
input string LineToken = ""; //チャネルアクセストークン
input string ID = ""; //ユーザーID
またLINE送信を行う機能は関数にまとめています。
void SendTextToLine(string token, string groupId, string message) {
int res;
res = ShellExecuteW(NULL, "open",
TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL4\\Files\\" + "S_LINE_API_TXT.bat",
token + " " + groupId + " " + message,
NULL,
0);
}
そのため、こちらの関数をLINE通知を行いたい任意の箇所に挿入するだけで簡単にLINE通知を送信することができます。
int OnInit()
{
SendTextToLine(LineToken, ID, "ここにメッセージを入力");
return(INIT_SUCCEEDED);
}
EAで使う場合
ダウンロードできるファイルはインジケーターですが、EAでも利用することが可能です。
もしもEAで利用したい場合はdllファイルのインポート、関数、パラメータなどLINE通知にかかわる部分をそのままEAにコピペすることが利用することができます。
S_LINE_API_TXT.batファイルについて
S_LINE_API_TXT.batの中身は以下のようなプログラムです。
@echo off
setlocal
set "TOKEN=%1"
set "GROUP_ID=%2"
set "MESSAGE=%3"
set "JSON_DATA={\"to\":\"%GROUP_ID%\",\"messages\":[{\"type\":\"text\",\"text\":\"%MESSAGE%\"}]}"
curl -X POST -H "Authorization: Bearer %TOKEN%" -H "Content-Type: application/json" -d "%JSON_DATA%" https://api.line.me/v2/bot/message/push
endlocal
windowsにはcurlコマンドというREST APIなどを実行することができるコマンドが標準で搭載されています。このbatファイルではmql4から受け取ったチャネルアクセストークンやユーザーID、メッセージを引数として受け取り、LINE Messaging APIを使用しています。
こちらのソースコードは特に書き換える必要はありませんが、別のメッセージなどを送信したい場合はAPIのドキュメントを参考にしながら適宜書き換えてください。
■利用制限について
Messaging APIは基本的に無料で使用することができますが、送信できるメッセージは月に200通限定という制限があります。(2024年11月現在)
そのため、それ以上のメッセージを送信したい場合はプランのアップデートを検討しましょう。
■注意点
本プログラムによって発生したあらゆるトラブルにおいて一切の責任を負いかねます。あらかじめご了承ください。