33
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LINE Bot で今日泊まれるホテルを探す『今日のホテルBot』を作ってみた

Last updated at Posted at 2016-12-31

LINE BOT AWARDS なる開発コンテストが開催されるということなので、Mashup Awards に応募した勢いで、こちらもやってみようとLINE Messaging API の勉強がてら開発してみました。

以前、出張先で急遽延泊することになった時に宿を探すのが面倒だったこともあり、場所を指定すれば今日泊まれるホテルを探して予約できるBot君を作りました。

使いみち

急な出張や予定変更となった時に慣れない場所でも、空いているホテルをさっと探して予約できちゃいます。
禁煙ルームや朝食付きなどでホテル/プランを絞り込むこともできます。
今日泊まれるホテルが表示される

使い方

ホテルを探したい地名をテキストメッセージか、位置情報を送ります
止まりたい場所を指定する

今日泊まれるホテルがあれば、カルーセル型メッセージで横スクロール表示されます
今日泊まれるホテルが表示される

今日泊まれるホテルが5軒以上あれば、他のホテルを見るか、禁煙ルームなどの条件で絞り込むこともできます
絞り込み検索

気に入ったホテルがあれば、そのホテルのプランだけをみることもできます
特定のホテルで絞込

”予約するボタン”を押せば楽天トラベルの予約ページが表示されるので、そのまま予約できちゃいます
簡単に予約

利用した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コードから「友だち追加」して使ってみてください。
「今日のホテルBot」のQRコード

「なんかバグってるよ」とか「こんな機能があればいいな」などありましたら、記事にコメントいただければ嬉しいです。

なお、大晦日に仕上げたので、大晦日ハッカソン にも参加してみます :-)

蛇足

ちなみにQiita 初投稿でした ;-)

参考サイト

33
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?