LoginSignup
11
4

More than 5 years have passed since last update.

line-bot-sdk-javaでLINE Beaconの通知をSpring Bootで処理する

Last updated at Posted at 2017-02-20

LINE Beaconをゲットしたので、line-bot-sdk-java使ってBeaconの通知を受けるまでの流れを書きたいと思います。手順的にはびっくりするぐらい簡単です(多分10分程度でいけます)。

LINE Beacon取得に関する経緯が特殊だったので先に触れたいと思います。技術的な部分だけ興味ある方は読み飛ばしてください~。

ちなみにLINE Beaconは以下より購入可能です。
https://beacon.theshop.jp/items/4699062

また、先日Raspberry PiなどでLINE Beaconが作れるというニュースもありました。

ラズベリーパイでLINE Beaconが作成可能に!「LINE Simple Beacon」仕様を公開しました
https://engineering.linecorp.com/ja/blog/detail/117

LINE Beacon取得の経緯

先日、Developers Summit 2017「【締め切り直前】30分でLINE Messaging APIを使ったチャットボットを作って優勝賞金1000万円のLINE Bot Awardsにチャレンジしよう!」のランチセッションに参加しました。

内容的にはLINE Botの紹介とプラットフォームの概要、そしてライブコーディングによるBot作成だったのですが、セッションの中でLINEの砂金さんより「本日LINE Beaconをお持ちしています。紳士協定ですが、LINE Botを作成してBeaconについても情報発信をしてくれる方に差し上げます!」とのこと!!

私もLINE Botは趣味で作っていて、少し前に以下の記事を書いたりしてました。

LINEで乃木坂46の若月さんと話せる「若様Bot」を開発してみた
http://qiita.com/kikutaro/items/525b54a6a466b5369f9e

Beacon欲しい!とセッション後のAsk the speakerに並んだのですが、既に列ができていて(汗)自分の順番が来る少し前で「すみませんー、Beacon品切れになりました」とのこと orz

諦めて帰ろうと思ったのですが「どうしても…という方は送り先を教えてください」とのこと!!なんて太っ腹な!!

厚かましいの重々承知で名刺をお渡しさせていただきました。

で、早速今日届いた!!!はやい!!!

LINE Beacon封筒

ということで早速試してみました。

Beaconのセットアップ

Beaconはこんな感じです。思ってたより全然小さかった(幅7cmくらい?)

LINE Beacon表

LINE Beacon裏

LINE Beacon電池あり

Beaconに付属の紙にある登録サイトのURLを入力してBeaconの設定画面へ進みます。

「ビーコン端末とbotの連携」ボタンを選択します。
2017-02-20_12h59_54.png

アカウントの一覧が表示されるので、ビーコンを利用するアカウントを選択します。
2017-02-20_13h00_15.png

アカウント連携の画面にきたら、Beaconに記載されている「端末ID(HWID)」と「パスコード(CODE)」を入力します。場所がわからない方は上に載せたBeacon端末の写真の1つ目を確認してみてください。(電池入れちゃった人は電池取ればわかるかと)
2017-02-20_18h38_48.png

「連携する」ボタンを押すと「アカウント連携が完了しました。」と出ます。ビーコンは電源OFF状態で大丈夫でした。
2017-02-20_19h32_56.png

これで設定は完了です。「LINE BeaconのEvent Web hookを受信する方法」という部分にしたがってLINEの設定をします。
2017-02-20_21h32_17.png

LINEアプリのセットアップ

LINEアプリを起動して、(その他タブの)右上のギアマークを選択します。
LINE設定

設定の「プライバシー管理」を選択します。
LINE設定

「LINE Beaconを利用」にチェックを入れます。
LINE設定

「同意して利用開始」を選びます。
LINE設定

Bluetoothをオンにします。
LINE設定

これでアプリの設定は完了です。

line-bot-sdk-javaのコード

あとはコードを書くのみ!line-bot-sdk-javaを使うとSpring Bootで簡単にLINEのサーバを立てることができます。

ローカル環境でもngrok使えばLINE Botの動作確認ができます。この辺りについては以前に以下ブログでまとめたので参考になれば幸いです。

Spring BootとLINE Messaging APIで作ったLINE BOTをHerokuで動かす
http://kikutaro777.hatenablog.com/entry/2017/01/16/230122

line-bot-sdk-javaのGitHubページには以下のようなエコーサンプル(botに話かけた内容をそのまま返すサンプル)があります。

EchoApplication.java
@SpringBootApplication
@LineMessageHandler
public class EchoApplication {
    public static void main(String[] args) {
        SpringApplication.run(EchoApplication.class, args);
    }

    @EventMapping
    public TextMessage handleTextMessageEvent(MessageEvent<TextMessageContent> event) {
        System.out.println("event: " + event);
        return new TextMessage(event.getMessage().getText());
    }

    @EventMapping
    public void handleDefaultMessageEvent(Event event) {
        System.out.println("event: " + event);
    }
}

で、Beaconの通知を受けるのは以下メソッドを追加するだけ。

EchoApplication.java
@EventMapping
public Message handleBeaconMessageEvent(BeaconEvent event) {
    System.out.println(event.getBeacon().getHwid()); //HWIDを標準出力
    return new TextMessage("LINE Beanconから通知だよ!砂金さん、ありがとうございました!");
}

Botを友達登録して、Beaconの電源を入れて近づけば…

Beacon通知

キター!!

Beacon通知

なんか楽しいー!色々と幅が広がりますね!

お忙しい方なのに、デブサミ後、速攻で手配してくださった砂金さん、本当にありがとうございました!

11
4
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
11
4