Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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 初投稿でした ;-)

参考サイト

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした