LoginSignup
91
88

More than 5 years have passed since last update.

LINE Beaconを試してみた

Last updated at Posted at 2016-09-29

9/29のLINE DEVELOPER DAY 2016に参加したところ、こんなに豪華なお土産をいただきました。
b1.jpg

オシャレなタンブラーも嬉しいですが、何といってもこれ!
b2.jpg

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アカウントでサインインすると、こんな画面になると思います。
beacon1.png
連携させるBOTを選択してください。

次に、ビーコンの端末IDとパスコードの入力です。
beacon2.png

端末ID??パスコード??なんぞ???

と思ったら電池の裏に書いてありました。

電池引っこ抜いてみてください。
b3.jpg
(電源は単三電池2本なんですね)

これで連携は完了です。

いざ電源ON!!



基盤が点灯したものの、何も起こりません。
LINE DEVELOPER DAYの会場に設置されたビーコンでは、
近寄るとLINEの画面上に通知が飛んできたんですが・・・
あの機能は提携企業にのみ提供されているようです。残念。

BOTと友だちになった状態でビーコンに近寄ると
BOTサーバー(Webhook URL)にイベントが飛ぶとのことなので、
そちらの確認をしてみました。

ビーコンイベントのキャッチ

新しくなったAPIリファレンスを見ながら、(https://devdocs.line.me/ja/)
ビーコンイベントのキャッチ & レスポンス処理を書いてみました。

hook.php
<?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イベント!!」と返信するようにしました。

結果はこちら
b4.png

この通り、メッセージのオウム返しと「BEACONイベント!!」返しができました。

電源ONからイベントが飛んでくるタイミングや間隔がイマイチわかりませんでしたが、
とりあえず何か面白いものが作れそうです。

91
88
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
91
88