昨日,おうむ返しするLINEボットを作りました.
今度は,ちょっとコードの中身を書き換えて,ビットコインボットを作ってみました.
今回は,ビットコインBTC情報を返すLINEボットBotの作成手順について書いていきます.
今回作るボットは
「BTC」というメッセージを送ると,BTCの情報(bid 現在の買い注文の最高価格,ask 現在の売り注文の最安価格)を返すボットです.「BTC」以外のメッセージには,「「BTC」というメッセージ以外は受け取れません!」と返します.
事前準備
- Herokuのインストール
超初心者がherokuをインストールしてみた!超初心者がHeroku+PHPで,”Hello World”とブラウザに表示させてみた! - LINEのアカウントを取得
作成手順
基本的には,おうむ返しLINEボットの作成方法と同じです.
ビットコイン情報を取得
今回は,Coincheckという取引所から,ビットコイン情報をAPIで取得します.
「Coincheck API」でググるってみると,このページにアクセスできます.今回は,ビットコインのbid,askの情報を取得します.
これらの情報は,リクエスト先(https://coincheck.com)とティッカーの(/api/ticker)を合わせたURL:https://coincheck.com/api/ticker から取得します.
コードとしては,以下になります.
$url = “https://coincheck.com/api/ticker”; //URL先を$urlに格納
$json = file_get_contents($url); //ファイルの内容を文字列に読み込む関数file_get_contentsを使い,$jsonに格納
$arr = json_decode($json); //オブジェクト型に変換して,$arrに格納
$bid = $arr->{“bid”}; //bidを取得して$bidに格納
$ask = $arr->{“ask”}; //askを取得して$askに格納
このへんの説明は以下記事を参考にしてください.
coincheckからビットコイン情報を取得できました.
アクセストークン
アクセストークンのところに,Line Developersで発行したアクセストークンをコピペしてください.
メッセージ取得
LINEボットにおいて,送ったメッセージを取得していきます.
$inputData = file_get_contents(‘php://input’); //ユーザーからのメッセージ取得
$jsonObj = json_decode($inputData); //受信したJSON文字列をデコードします
ここで取得した$jsonObjは,以下(APIリファレンスのページを参照)のような情報が格納されています.
次で,これらのユーザーからのメッセージ情報を取得していきます.
LINE Messaging APIを使う
上記の白囲みのところを取得するコードを説明していきます.
- Webhook Eventのタイプを取得して,$evenTypeに格納します.
上の例だと,”message”というタイプです.PHPコード$eventType = $jsonObj->{“events”}[0]->{“type”}; - メッセージタイプを取得して,$messageTypeに格納します.
PHPコード$messageType = $jsonObj->{“events”}[0]->{“message”}->{“type”}; 上の例だと,”text”というタイプです.textの他に画像とかの場合もあります. - replyTokenを取得して$replyTokenに格納 PHPコード$replyToken = $jsonObj->{“events”}[0]->{“replyToken”};
- メッセージテキスト(受信したメッセージ,つまり,ラインで送ったメッセージ自体)を取得し,$messageTextに格納します.
PHPコード$messageText = $jsonObj->{“events”}[0]->{“message”}->{“text”}; 上の例だと,”Hello world”というメッセージテキストです.
全コード
受け取ったメッセージが「BTC」だと,ビットコイン情報を返すようにIF文を使って書いてます.追ってみてください.
最後に
つなないながらも,なんとか,ビットコイン情報をLINEボットに反映することができました.今度は,通貨種類や取引所を選んで,情報を返すようなボットを作ってみたいです.