ビットコインの価格をグラフ化→LINEに定期通知する【GAS】
ビットコインの価格が気になる
最近、連日世間を騒がせているビットコイン。
あの時、買っとけばよかった。
と、思っている人も多いのではないでしょうか。
またビットコイン価格は気になるけど、サラリーマンだから常に見てはいられないし、かといって見ていないと暴落するかも・・・という方も多いかと思います。
そんな方向けにビットコインの価格チャートをLINEに通知する方法を紹介します。
作れるようになるもの
こんな感じで現在の価格とチャートがLINE通知されます。
ここではビットコインとリップルの両方を表示しているので2つのグラフが表示されます。
好きな通貨の情報を登録すれば通知を変えられるようになっているので自由に変更して使ってください。
使用するサービス
- LINE Notify
- Google Apps Script
- Google SpreadSheet
- Coincheck API
やっていること
今回はGoogle Apps Scripts(以下、GAS)を使用して実装しています。
下記の流れでビットコインの価格をグラフ化しLINEに定期通知をします。
今回は上記を実行するGASのコードを参考として掲載しています。
またGoogleSpreadSheetも共有しているのでそちらをコピーして使用することで簡単にグラフ化することもできます。
実装上で必要な情報
今回、GASのコードは掲載していますが、皆さんに埋めていただく必要のある情報が2つあります。
下記でその調べ方を述べていくので、その部分を調べて最後に掲載しているコードに反映させてください。
LINE NotifyAPIの設定とトークンを調べる
この記事を参考にしていただければセットアップまでは完璧だと思います。
[超簡単]LINE notify を使ってみる - Qiita
この記事に出てくる「トークン」をコピーしておいてください。
このトークンを使うことでLINEに通知することができます。
Google SpreadSheetの準備
下記の様なグラフを表示するGoogle SpreadSheetを用意していきます。
Google SpreadSheetの設置
下記にテンプレートとなるファイルを共有しています。
自分のGoogleドライブ等にコピーして使用してください。
(コピー等ができない場合教えてください。。。)
今回の仕様上、2行目が必要なので初期値は0になっていたりするのでそのへんは適宜直してください。
SpreadSheetのIDを調べる
続いて、Templateから自分のGoogleドライブへコピーしたGoogleSpreadSheetのIDを調べます。
コピーしたGoogle SpreadSheetを開くとSpreadSheetのページへ移動します。
その移動した先のURLにSpreadSheetを特定するためのIDが含まれています。
下記の様なURLになっているはずなので【ここの文字列】をコピーしてください。
https://docs.google.com/spreadsheets/d/【ここの文字列】/edit#gid=0
Google Apps Script 上へコードを設置
上記で取得した情報を下記のコードへ反映させ、ご自身のGoogle Apps Scriptへ置いてください。
設置の仕方はこちらなどを参照ください。
ASCII.jp:Google Apps Scriptのキホンと使い方 (1/4)|Web制作をちょっと便利にするGoogle Apps Script入門
gist1447c2e315e17efc7010ce3f46a5cc5f
一度実行をしてみて、Spreadsheetに情報が追記されることを確認してみてください。
確認ができれば、あとは定期的にこのコードを実行させるだけです。
GASの関数の説明
コーディングがくそなのはご愛嬌でお願いします。
アドバイスを随時募集しております。
getCCAPI(type, sendFlag)
CoincheckAPIから価格情報を取得してSpreadSheetに格納する関数を呼んでいます。
ここで設定しているtypeがcoincheckAPIに問い合わせる内容になるのでAPIに該当するものを設定してください。
またSpreadsheetに記録する際、このtypeと同じ名前のシートに記録しますのでシート名も合わせてください。
sendFlagはLINE通知をするかどうかのフラグです。
- 0の場合: Spreadsheetへのデータ格納のみ行う
- 1の場合: Spreadsheetへのデータ格納 + LINE通知も行う
sendGraphImage(type, ss)
こちらを参考にさせていただきました。
マネージャーでもできる!Google スプレッドシートのグラフを Slack に定期ポストする手軽な方法 - クラウドワークス エンジニアブログ
引数としてグラフを出力するためのシート名とSpreadsheetのオブジェクトを渡してください。
シート内に複数のグラフをもし作った際には
var chartImage = charts[0].getBlob().getAs('image/png').setName("graph.png");
のcharts[0]を変更する必要がある、、、ハズです。
setCC2SS(SS, type, value, sendFlag)
Spreadsheetに書き込む関数です。
if(sendFlag == 1){
if(((lastCount + 1) % SENDCOUNTS) == 0){
sendGraphImage(type,SS);
}
}
SENDCOUNTSがどのくらいの間隔でLINE通知をするのかの閾値です。
GASを5分間間隔で動かすとすれば、SENDCOUNTS=12にすることで1時間に一回のLINE通知を受け取ることができます。
適宜設定してください。
Coincheck APIのリンク
下記のAPIはパブリックなAPIとなっていて、認証等が必要が無く、アクセスするとレートだけを表示するという簡素な作りなので迷うことは全くありません。
https://coincheck.com/api/rate/btc_jpy
詳しくはこちらのAPIドキュメントを参照ください。
取引所APIドキュメント | Coincheck(コインチェック)
Google Apps Script関連の参考リンク
今回参考にさせていただいたリンクはこちらです。
Google Apps ScriptからLINE NotifyでLINEにメッセージを送る - Qiita
マネージャーでもできる!Google スプレッドシートのグラフを Slack に定期ポストする手軽な方法 - クラウドワークス エンジニアブログ
Google Apps Scriptでグラフを作成する方法の最初の一歩
取引所APIドキュメント | Coincheck(コインチェック)
Google Apps Script 実践メモ(スプレッドシート) - Qiita
まとめ
- ビットコインの価格をチャート付きで定期的に確認できるようになる
- GAS経由でSpreadsheetのグラフをLINE通知できるようになる
最後に
最近のビットコインの価格変動はバブルだと言われ続けています。
バブルなのかバブルでないのかは将来しか分かりませんが、どちらにしてもそこに至るまでにどういった値動きをしていたのかをリアルタイムで感じるのは今しかできません。
どの様な結果になるにせよ、歴史の1ページになることは間違いないので、リアルタイムで観察してみてはどうでしょうか。