今回の目的
LINE BOT AWARDS (2017年開催)にてグランプリをいただいた「アンドハンド」が実現している「連絡先を知らない人同士をLINEで通信させる方法」について解説する(【9/3】LINE BOOT AWARDS公式夏期講習 ~Messaging API + Pay編~ での一般社団法人PLAYERSのセッションにて発表させていただいた内容に加筆)。
解説するBot(AWARDS応募時点)の概要
- 手助けを必要とする人と、それをサポートする人をつなげる。
- 手助けを必要とする人とサポートする人は連絡先を交換することなく、やり取りを行うことができる。
利用技術
LINE Beacon LINE Developers 該当ページ
- 自分が友達登録をしてあるチャンネルに紐づいたBeaconに近づくと自分のスマホからサーバに通知がいく。
- メッセージの中にBeaconを特定できるIDと自分のユーザーIDが入っている。
- Beaconを特定できるID:beacon.hwid
- 自分のユーザーID:source.userId
BeaconEventサンプル
{
"replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDX...",
"type":"beacon",
"timestamp":1462629479859,
"source":{
"type":"user",
"userId":"U4af4980629..."
},
"beacon":{
"hwid":"d41d8cd...",
"type":"enter"
}
}
PUSH API LINE Developers 該当ページ
-
ユーザーIDを指定してメッセージを送信することができる(似た用途のIDがあるため混同しないよう注意)。
- ユーザーID = Webhookイベントオブジェクトで返されるuserId
- ユーザーID ≠ REPLY TOKEN
- ユーザーID ≠ LINE ID
-
選んだLINE@のプランによっては利用できないので注意。
実現方法
- 事前に手助けを必要とする人のユーザーIDと、所持しているBeaconのIDを紐づけてサーバーにて管理。
- 手助けを必要とする人がBeaconをONすると付近にいるユーザーのユーザーIDがサーバーに通知される。
- サーバーは「手助けを必要とする人のユーザーID」、「付近にいるユーザー」双方のユーザーIDを持っているため、PushAPIで双方にメッセージを送信することができる。
最後に
LINE Beaconの活用はそこまで進んでいないが、利用方法によっては一味違ったボットを実現することが可能となる。
是非、活用していただきたい。