Feedbotを作った話

セキュリティの最新技術を追うために、Feedlyを利用していた。

ただし、無料版だと検索ができないから、「あの記事どこでみたんだっけな」という問題に対処ができなくて、少し辛い思いをしていた。
もちろん決まったいくつかのサイトしか見ていなかったので、全てのサイトで断片的な情報を検索すれば見つかるわけだが、そんなことをするのはめんどくさい。

また、Feedlyをわざわざ開かないという問題があった。
人間 (というか私)は、基本的にいつも使うアプリしか開かない。
習慣化すればいいのだが、なかなか上手くいかなかった。
おそらく、「記事を読むぞ!」という気持ちになかなかなれないのが原因。

技術ブログを見るときは「読むぞ」より「目についたし面白そうだから読むか」くらいの気持ちで基本的に見ているので、「読むぞ」という気持ちを持たないで開けるアプリケーションにFeedを送りたかった。

さて、現在出た問題は二つ

  • Feedlyは検索機能を無料版だと持たない
  • 読むぞという気持ちを持たないで記事が目につく環境が欲しい

これを解決できそうなアプリケーション。。それはDiscordだ!となった。

はい。前置きが長くなりましたが、DiscordにFeedBotを作成しましたよという話。

環境

今回は、Google Cloud上で作成した。

理由としては、Cloudに今まで触れてこなかったが、今の仕事では理解しておかないとかなり辛くなりそうだったから、試しに使ってみるかという気持ちで。

使ったGoogle Cloudのサービスは以下3点

  • Google Cloud Functions (Google Cloud Run Functionsって名前になったのかな)
  • Cloud Storage
  • Cloud Scheduler

ざっくりどういう処理をしているかというと、Cloud Schedulerで、6時、12時、18時にFunctionsにリクエストを飛ばす。
Functionsはリクエストを受け取ったら、FeedをDiscord Web hook目掛けて飛ばす。
飛ばしたTitle, URLをCloud Storageに保存してキャッシュ的な役割をしてもらう。

こんな感じ。

無料枠で今やっているけど、無料枠が終わって月 1000yenくらいかかってくるとFeedlyと変わらなくなるので少し微妙。
500yenくらいなら安いのでそのまま生きさせる予定。

工夫した点としては、

  • Google Cloudのサービスを触って、こういうところに気をつけないといけないんだな〜とかセキュリティ周りのこと (工夫というか学び?)
  • Cloud Storageのデータ量を減らすためにTitleとURLをmd5でハッシュ化した値を書き込むという方式 (どれほど変わるのか。)

AIが近くにいると、かなり助かるけどClaudeの情報が古かったりして、変化の早いCloudとは少し相性が悪い気もした。

今の所、CTFチームのメンバーと、前職でお世話になった先輩に入ってもらっているが、役に立ってそう+金そこまでかからんなとわかったら、先着 5名くらいで受け入れてもいいかもしれない。

© 2025 back