9/29のLINE DEVELOPER DAY 2016に参加したところ、こんなに豪華なお土産をいただきました。
LINE Beacon!!(基盤むき出し!!!)
ってことでワクワクしながら帰ってさっそく試してみました。
#まずLINE BOTを作成する
LINE BUSINESS CENTERの「Developer Traialを始める」からBOTの作成を進めます。
https://business.line.me/ja/services/bot
今回のDEVELOPER DAYと同時にLINE BOTの正式版が発表され、APIも新しくなったようですが、LINE BOTの設定についてはトライアル版とさほど変わってませんでした。
BOTの設定に関しては他の方が詳しく記事を書いてくれているので割愛します。
(後で必要になるので、Webhook URLの設定まで終わらせると良いです)
#LINE BOTとLINE Beaconの連携
BOTの作成が終わったら、ビーコンと連携を行います。
ビーコンが入っていた箱の中にURLが貼ってあるので、そこにアクセス。
BOTを作ったLINEアカウントでサインインすると、こんな画面になると思います。
連携させるBOTを選択してください。
端末ID??パスコード??なんぞ???
と思ったら電池の裏に書いてありました。
電池引っこ抜いてみてください。
(電源は単三電池2本なんですね)
これで連携は完了です。
#いざ電源ON!!
・
・
・
基盤が点灯したものの、何も起こりません。
LINE DEVELOPER DAYの会場に設置されたビーコンでは、
近寄るとLINEの画面上に通知が飛んできたんですが・・・
あの機能は提携企業にのみ提供されているようです。残念。
BOTと友だちになった状態でビーコンに近寄ると
BOTサーバー(Webhook URL)にイベントが飛ぶとのことなので、
そちらの確認をしてみました。
#ビーコンイベントのキャッチ
新しくなったAPIリファレンスを見ながら、(https://devdocs.line.me/ja/)
ビーコンイベントのキャッチ & レスポンス処理を書いてみました。
<?php
$json_string = file_get_contents('php://input');
$json_object = json_decode($json_string);
foreach ($json_object->events as $event) {
if('message' == $event->type){
api_post_request($event->replyToken, $event->message->text);
}else if('beacon' == $event->type){
api_post_request($event->replyToken, 'BEACONイベント!!');
}
}
function api_post_request($token, $message) {
$url = 'https://api.line.me/v2/bot/message/reply';
$channel_access_token = '<BOT設定画面から取得したトークン>';
$headers = array(
'Content-Type: application/json',
"Authorization: Bearer {$channel_access_token}"
);
$post = array(
'replyToken' => $token,
'messages' => array(
array(
'type' => 'text',
'text' => $message
)
)
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($post));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_exec($curl);
}
メッセージイベントならユーザーの入力文をオウム返しし、
ビーコンイベントなら「BEACONイベント!!」と返信するようにしました。
この通り、メッセージのオウム返しと「BEACONイベント!!」返しができました。
電源ONからイベントが飛んでくるタイミングや間隔がイマイチわかりませんでしたが、
とりあえず何か面白いものが作れそうです。