2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

このアプリを作った経緯

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

何を作ったか

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

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

こんな感じ👇

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

こんな感じ👇

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

週末・月末に集計するため、必然的に週末・月末に投稿された記事はランキングに載りにくい仕様となっています。ご了承ください。

使い方

超簡単3ステップです。

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

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

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

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

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

このアプリは現在のところ、webhookを利用してランキングをチャンネルに投稿するだけのものなので、チャンネルの情報を読み取ったりはしません

Botについて

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

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

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

技術スタック

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

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

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

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

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

  • Qiitaや海外の技術記事なども取得してランキングを投稿する
  • Twitterのbotも作る

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

最後に

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

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

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?