経緯
何を作ったか
Beaconに近づくとLINEで教えてくれるBotです。簡単すぎてスミマセン。
画面
処理の流れ
次のようなJSONが送られてくるのは前回紹介しました。
{ "events": [ { "type": "beacon", "replyToken": "e0f475d5c49249b48b1bb37f7406d4cc", "source": { "userId": "*********************************", "type": "user" }, "timestamp": 1536757232074, "beacon": { "hwid": "**********", "dm": "", "type": "enter" } } ] }
ここのeventsの要素のtypeが'beacon'になっているとbeaconのイベントということで。実装は次のような感じでできますね。
if (events[0].type === 'beacon') { if (events[0].beacon.type === 'enter') { // enter時の処理. } else if (events[0].beacon.type === 'leave') { // leave時の処理. } }
ソースコード
どんな展開が見込めるか
[ Beaconを持ち歩く前提で ]
待ち合わせする人にこのBotに友達になってもらって、近づいたらお知らせすることにより、待ち合わせがスムーズに。
[ Beaconを固定で設置する前提で ]
家に近づいたらスマートホーム関連のAPIを叩く。(電気つける/テレビつけるetc)
やろうとしたけどできなかったこと
[ Beaconを持ち歩く前提で ]
このBotを飲み会トークルームに招待して、飲み会に遅れる場合、自分が店に近づいたら予めビールを頼んでおいてもらいたいw
できなかった理由は、トークルームでのイベント発火です。まぁよく考えたら
・友達登録もしていないトークルーム上のアカウントにBeaconイベントを発火させる
・トークルーム上の誰に近づいたかそもそも判別できない
など、セキュリティー的にもWebhook API的にも無理な感じでした。