メンチカツには醤油でしょ!!

AWS/Java/Node.js/Spreadsheets/Docker/Jenkins/コミュニティ・勉強会レポを主とした技術系ブログ

LINE Beaconが当たったので簡単な実装をしてみた

経緯

ryoichi0102.hatenablog.com

何を作ったか

Beaconに近づくとLINEで教えてくれるBotです。簡単すぎてスミマセン。

画面

f:id:ryoichi0102:20180925102130j:plain

処理の流れ

次のような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時の処理.
  }
}

ソースコード

github.com

どんな展開が見込めるか

[ Beaconを持ち歩く前提で ]
待ち合わせする人にこのBotに友達になってもらって、近づいたらお知らせすることにより、待ち合わせがスムーズに。

[ Beaconを固定で設置する前提で ]
家に近づいたらスマートホーム関連のAPIを叩く。(電気つける/テレビつけるetc) 

やろうとしたけどできなかったこと

[ Beaconを持ち歩く前提で ]
このBotを飲み会トークルームに招待して、飲み会に遅れる場合、自分が店に近づいたら予めビールを頼んでおいてもらいたいw

できなかった理由は、トークルームでのイベント発火です。まぁよく考えたら
・友達登録もしていないトークルーム上のアカウントにBeaconイベントを発火させる
トークルーム上の誰に近づいたかそもそも判別できない
など、セキュリティー的にもWebhook API的にも無理な感じでした。