最近LINE BOTが流行っていますね。僕もこの流れに乗ってみました。
みなさん元気に通勤していますか?
僕は会社から帰る際、乗換NAVITIEのアプリで電車の時間を調べて、その後Safariでバスの時間を調べる、ということをやっています。
iPhoneは子供の写真で容量が一杯になってきており、できれば40MBくらい使っている乗換NAVITIEのアプリも削除してしまいたいところです。
LINE BOTにつぶやいたら帰りの電車とバスの時間を伝えてくれるようになると、乗換NAVITIEのアプリを消してそのぶん子供の写真をたくさん保存できるようになります。
幸いなことに、会社から帰る時間はほぼ決まっており、18:30〜19:30までの電車とバスの時間さえ抑えておけば乗り継ぎの計算ができてしまいます。つまりLINE BOTの裏側で乗換時間を調べるのにわざわざデータベースやAPIを使わなくて済みそうです。
ということでLINE BOTが出来上がりました。(僕と同じ時間帯、同じ経路で帰る人でないと意味はありませんが・・・)
PHPでやってみた、Rubyでやってみた系の記事はいろいろ見ましたが、今回僕は
- Play Framework 2.5.3 for Java ( https://www.playframework.com/ )
- Heroku ( https://www.heroku.com/ )
- Fixie ( https://elements.heroku.com/addons/fixie )
でやってみました。
基本的な処理の流れは他の言語と一緒です。
いくつかつまづきポイントがあったので、まとめてみます。
とりあえずFixieを使ったProxy経由でのレスポンスを返すところだけが大変で、それ以外はさくっとできるかなと思います。また今回はJSONをPOSTしてレスポンスを返すので、テストコードを用意しておくと便利です。
Herokuのアドオン、FixieをPlay Frameworkで使う方法
https://hacknote.jp/archives/19212/
Play FrameworkのWSResponseの処理方法
https://hacknote.jp/archives/19218/
LINE BOTをPlay Framework for Javaで使う時の改行のしかた
https://hacknote.jp/archives/19220/
Play FrameworkのtestでJSONをPOSTする方法
https://hacknote.jp/archives/19222/