Play for Java(2.5) on HerokuでLINE BOTを動かした話

最近LINE BOTが流行っていますね。僕もこの流れに乗ってみました。

みなさん元気に通勤していますか?

僕は会社から帰る際、乗換NAVITIEのアプリで電車の時間を調べて、その後Safariでバスの時間を調べる、ということをやっています。

iPhoneは子供の写真で容量が一杯になってきており、できれば40MBくらい使っている乗換NAVITIEのアプリも削除してしまいたいところです。

LINE BOTにつぶやいたら帰りの電車とバスの時間を伝えてくれるようになると、乗換NAVITIEのアプリを消してそのぶん子供の写真をたくさん保存できるようになります。

幸いなことに、会社から帰る時間はほぼ決まっており、18:30〜19:30までの電車とバスの時間さえ抑えておけば乗り継ぎの計算ができてしまいます。つまりLINE BOTの裏側で乗換時間を調べるのにわざわざデータベースやAPIを使わなくて済みそうです。

ということでLINE BOTが出来上がりました。(僕と同じ時間帯、同じ経路で帰る人でないと意味はありませんが・・・)

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/