LoginSignup
3
4

【個人開発】近くの図書館に読みたい本が入荷されたときに通知するLINE Botを作りました。

Last updated at Posted at 2024-01-03

はじめに

こんにちは!都内文系大学生の@StStuです。
私はプログラミングにまだまだ通じていないのですが、勉強も兼ねて、「近くの図書館に読みたい本が入荷されたときに通知するLINE Bot」を作りました。

名称はそのままですが、「新着図書通知Bot」です…

LPはこちらから!

新着図書通知Botについて

今回作成した新着図書通知Botについて簡単にご紹介させてください。

記事内に誤記や勘違い等ありましたら、ご指摘いただければ幸いです…

新着図書通知Botのたった一つの機能

今まで自分でいくつかアプリを作ってきたのですが、毎回機能を増やそうと躍起になって、本来の目的を見失うことが多々ありました。
今回は、その反省を活かし、一つのことだけができるように特化しました。
それは、「家の近くの図書館に、読みたい新刊が入荷されたときに通知する」という機能です。

現在、いわゆるMPVの状態で、細かい課金機能などは、これから拡充していこうと考えています。

作った動機

本当はこういったアプリ・Botを作成するときは、マーケットイン(顧客ありきの考え方)の考え方が大事なのだろうと思います。
しかし今回のBotは、完全に自分本位で作成しました。
一義的な動機としては、LINE BotをPythonのライブラリを通じて自分で作り上げてみたいというものでしたが、せっかくならば自分のニーズ(新刊図書を早く読みたい!)を満たすものが良いと考え、このBotの作成に至りました。
人気の新刊図書は入荷から少し経つと、すぐに行列ができて、借りられるのが数カ月先といったことがよく起こります(本当は全ての新刊を購入することができたらよかったのですが…)。

もし、同じニーズをお持ちの方がいらっしゃったら、ぜひご利用いただければなと存じます。

使っている技術

  • Python
  • Flask
  • LINE Bot
  • Docker

が主なものです。
Flaskを用いてVPS上にサーバーを作成し、Webhookとして利用しています。
VPS上に環境を作成するに当たって、Dockerを利用しています。

Python・Flask

DockerのPythonイメージを利用して、Webhookサーバーを作成しています。
またユーザー情報や、読みたい本を保存するために、sqlite 3データベースを使用しています。
sqlalchemyを使用しているため、SQL文をわざわざ勉強する必要がなく非常に簡便です。

カーリル様のAPI

図書館の蔵書検索のために、カーリル様のAPIを利用しています。
カーリル様のAPIなしには、今回のアプリを作ることはできませんでした。この場を借りて感謝申し上げます。
カーリル様が開発しているOpenBDを使用して、ISBNという書籍コードから書籍名を取得しています。

郵便番号検索API

zipcloud様のAPIを利用して、郵便番号から住所を取得しています。

LINE Bot

Screenshot_20240102-223443-portrait.png
最近、LIFFも流行っているようなのですが、ユーザーに対するプッシュ通知が必要だった上、作成コストも比較的低そうなので、LINE Botを作成するのが最も適していると考えました。

Docker

Dockerについての知識が浅く、環境構築には大変時間がかかりました…
外部サイトにはなりますが、環境構築に際してこちらのサイトの情報は非常に参考になりました。

ChatGPTとの関係

私のような初学者にとって、ChatGPTは本当に欠かせない存在です。
先行文献を読まずとも、6割くらいの作業は完璧にこなしてくれます。

その一方で、ChatGPTの誤りの数は決して少なくありません。
そのため、初学者にとってはこのようなやり方が効率が良いように感じています。

  1. 自分の知らない分野について、ChatGPTに概観を説明してもらう
  2. 自分なりにその分野について簡単に反芻する
  3. 自分なりにコードを書くor解釈したものをChatGPTにぶつける
  4. ChatGPTのフィードバックを受け、新しく質問をしたり、ある程度見識を得た状態で、ChatGPTにコード作成を依頼する

これの1のステップをおろそかにして、ChatGPTに丸投げしてしまうと、結局ChatGPTの誤りに全く気づけず、遠回りをしてしまうようなことが非常に多かったです。

LPはこちらから!

3
4
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
3
4