見出し画像

EAの口座紐付け認証をWeb化する。

割引あり

SOBADOROのソースコード開発担当Hiroです。
みなさんEAの口座認証、一個づつ配布EAに口座番号を記載してマッチングしてませんか?
EAのバグフィックスや、バーションアップ時のEA再配布に手間かかりますよね・・。
そこで、口座紐付け確認をWeb経由で行う方法(の一つ)を紹介します。


Web認証化によって、一度リストに登録した口座番号はその後のバグフィックスやバージョンアップ時でも”公開URL”にEAを1個置くだけで利用できるようになります。工数低減効果は絶大ですよ。

必要な内容は以下です。

口座紐付けWeb認証に必要な内容

・紐付け口座リストを記録するための"Googleスプレッドシート"
・スプレッドシート内の口座番号を検索し結果をMT4に返す"Webアプリ"
・MT4からWebアプリに口座番号を投げ、レスポンスを受けとる"mql4コード"

紐付け口座リストを記録するための"Googleスプレッドシート"

Googleアカウントはお持ちですか?
もしお持ちでなければ”Googleアカウント作成”からアカウントを作成しましょう。
ログインしたら、Googleスプレッドシートを作成します。
(あとでWebアプリから呼び出すための名前をつけておきましょう)
このスプレッドシートに稼働を許可する”口座番号”を記入していきます。
のちに紹介するWebアプリでの検索簡易化のため特定の”列”に入力するようにすると良いです。

スプレッドシート内の口座番号を検索し結果をMT4に返す"Webアプリ"

次にEA側から渡された口座番号情報をリストに記載された口座番号と照合するためのWebアプリを作成します。
Webアプリの作成には”GAS”(Google Apps Script)を使用します。

  1. 作成したスプレッドシートメニューから”拡張機能””Apps Script”を選択します。

  2. ファイル項目の”+”から”スクリプト”を選択し適当な名前をつけます。

  3. ソースコード作成画面でEAから受けとった口座番号情報がリスト内に存在するかを確認するソースコードを記載します。

  4. ソースコードの最後には口座番号が見つかったか否かを値としてEAに返すソースコードを記載します。

  5. ソースコードが完了したら、右上の”デプロイ”→”新しいデプロイ”と進みます。名前は自由に、ユーザーはご自分のアカウント、アクセスできるユーザーは”全員”に設定します。

  6. ”デプロイ”ボタンを押すとデプロイが実行され、作成されたWebアプリのコードとURLが表示されますので、URLを記録します。(のちにこのURLをEAから呼び出します)

以上でWebアプリの準備は完了です。

EAからWebアプリに口座番号を投げレスポンスを受けとる"mql4コード"

先ほど作成したWebアプリをEAから呼び出し、戻り値から口座認証可否を判断するためのコードをEAのソースコード内に記載します。

  1. ・OnInit()関数内で口座番号を取得し変数に格納します。

  2. ・デプロイ時に取得したURLの最後・・・execのあとに1.で取得した変数を追記します(これでWebアプリに口座番号情報を渡すことができます)

  3. 戻り値が”−1”の場合Webアプリからのレスポンスエラーですので必要に応じて処理を記載します。

  4. 戻り値に応じて処理を記載します。(OKの場合口座確認用変数にtrue NGの場合false・・など)

  5. OnTick()関数内はじめに口座確認用変数の値に応じた処理を記載します。(口座確認用変数の値がfalseの場合、returnでその後のコードを実行させないなど)

ユーザー側の設定

最後にユーザー側のMT4を設定します。
MT4のツール→オプション→エキスパートアドバイザ タブの”WebRequestを許可する”にチェックを入れ、許可するURLに”https://script.google.com”を追加することでMT4からWebアプリへのアクセスが可能になります。
案内文や取扱説明書に記載しましょう。

以上の流れで口座番号のWeb認証化が可能となります。
EA配布をお考えの方、利用者様が増えてバージョンアップ時のコンパイル地獄にお悩みの方是非お試しください。

■ここまでの流れで実装できる方も多いかと思いますが、時短のためにGASのコード及びソースコードを以下有料記事として置いておきます

Hiro

ここから先は

2,979字

この記事が気に入ったらサポートをしてみませんか?