はじめに
とあるLINE Botをアップデートしたので、そのことについて書きます。Botの機能の説明についてはGitHubのREADMEを見てください。
ソフトウェア構造
- Messaging Server(LINE Bot用のサーバー)はユーザーとの会話のみを実装
- コンパス・地図表示・書き込みの各機能をLIFFで実装してリッチメニューの中にURLを格納
- 位置情報と書き込み情報は別で立てたREST APIで保存・取り出しを実行
各機能を独立させることで機能の拡張が用意になった
位置情報とつぶやきの同時取得
今まで
トーク画面上に一旦発行したタイムスタンプをフォームにコピペしてもらう仕様

今回
テキストデータ(Tweet)送信時にWEB API(Geolocation API)を使って位置情報(Location)を取得
他に追加した機能
コンパス
DeviceOrientationを使ってデバイスの方向を検知

QRコードシェア機能
その場でLINE BotをオススメするためにQRコードをすぐに表示する機能を追加。
これからやりたいこと
LINE Thingsとの連携
歩数計と組み合わせたサービス
- ある歩数以上を歩くとBotが褒めてくれる
- 目標の歩数設定
- 歩いた軌跡を地図へプロット
など
つぶやきの感情判定
コンパスパンダ用のREST APIを拡張してつぶやき内容からネガポジ判定をする
- 自然言語処理的なことをしてみる
- つぶやき内容に応じて地図マーカーが変わる
など
さいごに
- 各単機能をLIFFで実装して、リッチメニューで管理するとシステムが疎結合になるので拡張しやすい
- LIFFのブラウザでもそこそこWEB APIが使える
- LINEを使うとメインのUIを実装する必要がない
- QRコードを表示する機能を入れておくと、その場で誰かにBotをすぐにオススメできて使ってもらうことができる