🍣

Zennのいいねランキングを自動投稿してくれるSlack Botをつくりました!

2024/03/13に公開
2024/3/24更新

Qiitaの週間ランキングを毎週火曜日に配信する機能を追加しました
Qiitaの記事はストック数といいね数の合計でランキングを作成しています
月間ランキングはQiita APIで取得できる記事の上限数を超えてしまうため、週間ランキングのみの配信となります

2024/3/29更新

ランキングをツイッターにも投する機能を追加しました
https://twitter.com/techarticlesbot

このアプリを作った経緯

個人的にZennの記事のいいねランキングを作って残しておきたいと思ったのが発端で、どうせ作るなら公開できる形にして通知もほしいな〜ということで、GAS, Slack, Notionという最小構成(?)でつくってみました

何を作ったか

Zennに投稿された記事で、週間・月間のいいね数ランキングをそれぞれ毎週月曜日と毎月一日に作成してNotionに保存し、Slackにも通知します

Slackにはランキングの上位3記事を投稿します

こんな感じ👇

また、週間ランキングでは上位30位まで、月間ランキングでは上位50位までをNotionデータベースに保存して公開します(上の投稿の「ランキングの続きはこちらから」がデータベースへのリンクになっています)

こんな感じ👇

このデータベースはWeb公開しているので誰でもみることができ、また複製することもできます。

使い方

超簡単3ステップです。

  1. ランキングを投稿するためのSlackチャンネルを作成
  2. ここからSlackアプリをワークスペースにインストール
  3. ランキングが投稿されるのを待つ!

ただ、現時点ではこのアプリはSlackの承認をうけていないため、こんなメッセージが出ます

これダサいし、なんか怪しいアプリに見えるなあ....

ということで、現在Slackのapp directoryに申請中なのですが、前提条件として10以上のワークスペースにインストールされているという項目があります(これを満たしていないと審査してくれません😭

ここまで読んでくれた方は、インストールにご協力していただけると助かります!!!

Botについて

Slack Botの名前はTechをもじってTekTek(テクテク)としました
なんか響きが可愛いくて気に入っています🥰
ランキング上位にテクテク登っていくという意味もあります(後付け)

また、Zennのイメージカラー(?)の青を基調としたキャラクターをChatGPTに生成してもらいました。ChatGPTにしてはそこそこいい出来だと思います

ランディングページも作ったのでぜひ見てください!

https://taichiro-s.github.io/zenn_ranking/

技術スタック

紹介するほどの技術を使っていないのでアレですが...
一応以下のような構成になっています

フロントエンド(というか認証のためのリダイレクトページ)とバックエンド処理はGASで行い、登録されたSlackチャンネルのwebhook URLを保存するためにCloud Datastoreを使用しています。記事のデータはNotionデータベースに保存しています。
またGithub Actionsとclaspを使用して自動テスト、プッシュ、デプロイをしています。

実装については別記事にするかもです

追加実装予定(時期未定)

とりあえず動くもの作ってみたという状態なので、まだまだ機能を追加していきたい!
今のところ、以下のようなのを考えています

  • Qiitaや海外の技術記事なども取得してランキングを投稿する
    👉 3/24 Qiitaの記事配信機能を実装🎉
  • Twitterのbotも作る 👉 3/29 実装🎉

ほかにも欲しい機能があればコメントなどで教えてください!

最後に

このアプリに関して何かあればこちらまでお問い合わせください

参考にさせていただいた記事

https://zenn.dev/yoshimaru46/articles/001ff978cc1ecc

Discussion