LINE BOT AWARDS なる開発コンテストが開催されるということなので、Mashup Awards に応募した勢いで、こちらもやってみようとLINE Messaging API の勉強がてら開発してみました。
以前、出張先で急遽延泊することになった時に宿を探すのが面倒だったこともあり、場所を指定すれば今日泊まれるホテルを探して予約できるBot君を作りました。
使いみち
急な出張や予定変更となった時に慣れない場所でも、空いているホテルをさっと探して予約できちゃいます。
禁煙ルームや朝食付きなどでホテル/プランを絞り込むこともできます。
使い方
ホテルを探したい地名をテキストメッセージか、位置情報を送ります
今日泊まれるホテルがあれば、カルーセル型メッセージで横スクロール表示されます
今日泊まれるホテルが5軒以上あれば、他のホテルを見るか、禁煙ルームなどの条件で絞り込むこともできます
気に入ったホテルがあれば、そのホテルのプランだけをみることもできます
”予約するボタン”を押せば楽天トラベルの予約ページが表示されるので、そのまま予約できちゃいます
利用したAPI
-
楽天トラベル空室検索API
- ホテルの空室検索
-
Yahoo!ジオコーダAPI
- 地名から位置情報を取得
環境
- AWS Lambda
- Amazon API Gateway
- node.js v4.3.2
利用したnode.js パッケージ
-
node-rakuten
- 楽天APIを簡単に利用できるパッケージ。空室検索API だけでなく、ひととおりのAPIが使えるようです。
Lambda へのアップロード
AWS Lambda へのデプロイはソースコードや利用するパッケージをZIPファイルに含めてアップロードする必要があります。
いちいちZIPファイルを作ってアップロードするのも面倒でしたので、こちらで紹介されているツールを利用させていただきました。
AWS Lambdaの関数アップロードをお手軽に
一度設定してしまえば、一コマンドでアップロードできるので、かなり楽に開発を進められました。
実装
こちらにソースコードを載せておきます。
node.js は使い始めたところですので、まずいコードなどありましたらコメントいただければありがたいです。
LINE BOT AWARDS にも応募しますが、ソースコードを載せておいて大丈夫かな??
詰まったところ
LINE Messaging API のカルーセル型メッセージやボタンのタイトルなどには文字数制限があるのですが、これに気づかず何時間かハマってしまいました…
締め切りまでに改善したいところ
- LINE のメニューをまったく使っていないので、何かショートカットなど付けたいですね
- 人数とかメニューから指定できるといいのかな?
- 絞り込み条件の追加、指定方法
最後に
使ってみたいと思った方は、下のQRコードから「友だち追加」して使ってみてください。
「なんかバグってるよ」とか「こんな機能があればいいな」などありましたら、記事にコメントいただければ嬉しいです。
なお、大晦日に仕上げたので、大晦日ハッカソン にも参加してみます :-)
蛇足
ちなみにQiita 初投稿でした ;-)