読者です 読者をやめる 読者になる 読者になる

ビットコインとシステムトレード (Bitcoin & Automated Algorithmic Trading)

ビットコインの自動売買システム構築とトレード実践結果 (Automatic Bitcoin Trading System Implementation and Trading Result)

LINE Messaging APIによるビットコイン価格・トレード損益・Bot監視

ビットコイン取引に限った話ではないですが、価格や自動売買状況のモニタリングにはLINE Botが非常に相性が良いです。1時間や30分おきくらいにLINEで通知するようにしておくと、隙間時間でのスマホからの確認も手軽になります。本記事ではGoogle Apps Script (GAS)を用いた、通知先LINEアカウントのuserId取得とその利用手順を紹介しておきます。

手順

1. 下記のコード(例1)をGoogle Apps Script上で記述する
2. Google Apps Scriptの 公開 > ウェブ アプリケーションとして導入 からURLを取得する(実行ユーザは自分、アクセス可能ユーザは全員に設定)
(例:https://script.google.com/macros/s/XXXX/exec)
3. LINE Developers > Basic Information > Webhook URLに上記URLを設定する
4. LINE Botアカウントを友達登録し、LINEでメッセージ(なんでも良い)を送る
5. LINE BotからuserIDが返信されてくるのでメモする
6. 取得したuserIDをLINE BotのPUSH_MESSAGEの宛先に用いる(例2)

例1:Google Apps Script (通知先LINEアカウントのuserId取得)

// LINE Developers > Basic Information > Channel Access Token から取得

var channel_access_token = "取得したAccess Token";

function doPost(e) {
var posted_json = JSON.parse(e.postData.contents);
var events = posted_json.events;
events.forEach(function(event) {
var postData = {
"replyToken" : event.replyToken,
"messages" : [
{
"type" : "text",
"text" : event.source.userId
}
]
};
Logger.log(event.replyToken);
var options = {
"method" : "post",
"headers" : {
"Content-Type" : "application/json",
"Authorization" : "Bearer " + channel_access_token
},
"payload" : JSON.stringify(postData)
};
var reply = UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
Logger.log(reply);
});
}; 

例2:Ruby (取得したuserIdを用いたPush通知)

 #!/usr/bin/ruby

require 'line/bot'

# LINE Developers > Basic Information > Channel Secret から取得

LINE_CHANNEL_SECRET = '取得したChannel Secret'

# LINE Developers > Basic Information > Channel Access Token から取得

LINE_CHANNEL_TOKEN = '取得したChannel Access Token'

message = {
type: 'text',
text: 'LINEに通知するメッセージ内容'
}
client = Line::Bot::Client.new { |config|
config.channel_secret = LINE_CHANNEL_SECRET
config.channel_token = LINE_CHANNEL_TOKEN
}
response = client.push_message('取得したuserId', message)