はじめに
こんにちは
今回作成したLINE BOT、『ふらりトピック』は、ふらっと寄り道したい時やひまつぶししたい時に、画面タップのみで近隣のお店を検索できたり、ひまつぶしできるニュースや動画を紹介するBOTになっています。時間を効率的に、そして有効的に使えるような仕組みをITの力で作っていきたいと考え、こちらのアプリを開発させていただきました。
ふらりトピック
友だち追加
サービス概要
【使用技術】
・ Rails 6.1.4.1
・ LINE Messaging API SDK for Ruby
・ mechanize
・ YouTube Date API
・ ホットペッパーWebサービス
・ HeartRails Express API
・ Render(デプロイ先)
・ UptimeRobot(サーバーのスリープ防止)
後述のTogetterまとめ記事の取得はRubyGemの mechanize を利用し、スクレイピングしています。
また、デプロイ先は当初Herokuを予定してましたが、Herokuのフリープランの終了に伴い、Renderのフリープランでのデプロイに変更しました。Renderのフリープランのみの利用だと15分でスリープモードに入ってしまい起動が遅くなるため、UptimeRobotというサーバーのスリープ防止機能で5分ごとにリクエストを飛ばすようスケジューリングし、課金せずにスリープを防止しています。
①カフェ検索
上記動画のように、画面下部のリッチメニューをタップするだけで近隣のカフェを検索できるよう設定しました。
こだわった点としては、すべて画面タップだけで誘導し完結できるようにしたところです。文字入力も可能ですが直感的で簡単に使える、あくまでひまつぶしをコンセプトとしているため使い方を模索している合間につぶす暇がなくなったり、もういいやと思わないようにするために『タップで完結』する点にはこだわってます。
②ニュース 動画検索
同じくニュースや動画の検索でもタップだけで検索できるように設定しました。
ニュースはTogetterまとめのサイトをスクレイピングし取得。動画はYOUTUBEのAPIを利用しこちらは急上昇にあがってきた動画を取得しています。
文章中心のTogetterまとめはテキスト形式でランキングにして表示し、動画はサムネイルが見えるようフレックスメッセージ形式にして表示するなど用途によって変えています。
なぜLINE BOTにしたか
このアプリの最大のこだわりでもある、直感的で簡単を叶えるためにWEBアプリではなく、LINE BOT形式にしました。
・ 使い方を説明しなくてもすぐ使えるデザイン
→LINEなら使い方の説明はほぼ不要
・ スマホ利用しやすいアプリにすること
→視認性と操作性の観点から、スマホ利用向けの方が目的に合っていると考えた
・ ダウンロードの手間を省く
・ 軽くてサクサク動く
→あえてログインログアウト機能をつけず、データベースも使わずに開発したことでロード時間を減らしサクサク動くアプリにした
特に以上の観点にはこだわっています。
苦労した点
とにかくLINE BOTの作成をしたことがなく、また参考になる記事も少なかったため全て苦労したといっても過言ではないのですが、LINE BOT特有のJSON形式でのコードの記述や、カフェ検索に関してはいくつも条件分岐を行ったため、そのたびエラーが続出し解決に非常に苦労しました。
また、JSONの記述ミスはローカルサーバー上でエラーメッセージが出ないため、そのエラー原因を探るために何日もLINE上にメッセージを送り続けて探していました。
今後の改善点
コードのリファクタリングはもちろんのこと、急上昇動画をユーザーひとりひとりに合ったものに変更できたらいいなと思っています、また、機能としてはYahoo!のニュースなども追加できたらする予定です。
もし、気になる部分や欲しい機能がありましたら、LINE上リッチメニュー右下のお問合せからご連絡いただけるとありがたいです。
最後に
はじめての自力でのアプリ作成、LINE BOT作成でとても大変ではありましたが、エラーが解決し機能実装がかなった時の喜びはひとしおで、もっと作りたいなと思える瞬間でした。これからもITの力で課題解決できるよう、努めて参りたいと思います。