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

Qiita記事をSlackに自動投稿するBotの機能拡張案

Last updated at Posted at 2025-02-14

はじめに

現在、GitHub Actionsを利用して、Qiitaから特定のタグを持つ最新記事を取得し、Slackの特定チャンネルに自動投稿するBotを作成し、利用しています。

本記事では、このBotの機能拡張について検討し、今後の実装計画を整理しようという思いで書きました。

現在の機能

  • Qiita API を利用し、指定タグを持つ最新の上位3件の記事を取得
  • 取得した記事を Slackの特定チャンネル に投稿
  • GitHub Actions を使用し、毎日決まった時間(JST 08:30)に自動実行

開発計画

機能 優先度 実装方法
複数タグ対応 fetch_qiita_articles() を修正し、複数タグを検索
記事フィルタリング(いいね数, ストック数) APIレスポンスのデータを活用
Slack投稿フォーマット改善 Markdown対応、スレッド化
手動実行機能 Slack Bot コマンド実装
スケジュール柔軟化 GitHub Actions のカスタムスケジュール
複数チャンネル対応 設定ファイルでチャンネルを分岐
記事の言語フィルタリング 記事の言語情報を判定
エラーハンドリング・ロギング ログ管理の導入
記事の要約機能 AI要約APIを統合
ランキング機能 記事のスコアを算出し定期投稿

機能拡張詳細

1. 複数タグ対応

  • 現在は 1つのタグ のみ検索対象
  • 複数タグ を指定し、各タグごとに記事を取得・投稿
  • 例: ['生成AI', 'Python', 'SlackBot'] の記事を別々に取得
    タグ名もSlackへの投稿フォーマットに追加

2. 記事のフィルタリング機能

  • いいね数ストック数 を基準に 人気記事のみ通知
  • 過去に通知した記事を記録し、重複投稿を防ぐ
    →これ結構優先度高めだと感じてる

3. Slack投稿のフォーマット改善

  • 現在は タイトルとURLのみ 投稿
  • 記事の概要(description)投稿者情報 も追加
  • Markdownを活用し、見やすいフォーマットに変更
  • スレッド機能 を使い、1つの投稿にまとめる
    →ここら辺のUI的な要素は優先度高いと思った

4. 通知スケジュールの柔軟化

  • 現在は 1日1回 固定
  • 設定可能な時間や回数を増やす(例: 朝・昼・夜の3回)
  • 特定の曜日のみ通知する 設定を追加
    今後のスケジュール感によって優先度が変わる

5. 手動実行機能

  • Slack上で /qiita 最新3件 のようなコマンドを実行すると、即座に記事を取得・投稿
  • GitHub Actions とは別に、手動実行用スクリプトを用意
    →やってもいいけど、手動で実行ではなく違う機能を考えたい

6. 複数チャンネル対応

  • 特定のタグごとに異なるSlackチャンネルへ投稿可能に
  • 例: 生成AI#ai-newsPython#dev-python へ投稿
    →意外と良いと思ってる

7. 記事の言語フィルタリング

  • Qiita記事の 投稿言語 に応じて、日本語記事のみ取得
  • 英語記事も対象にする場合、フィルター機能を追加
    →投稿言語の比が分からないけど、ほぼ日本語だと思うからいらないかも

8. エラーハンドリング・ロギング

  • APIエラー時のリトライ処理
  • 投稿失敗時のエラーログ収集(例: CloudWatch, ログファイル)
    →エラーハンドリングは例外なく重要か

9. 記事の要約機能

  • 記事の内容を AIで要約 し、Slack投稿に含める
  • OpenAI APIやGemini APIなどを活用
    Slackの投稿は、長すぎると隠れるから要約させたい

10. 記事のランキング機能

  • 直近1週間や1ヶ月の 人気記事ランキング を定期投稿
    →直近1カ月くらいならくどくないかも??

おわりに

本記事では、Qiita記事をSlackに自動投稿するBotの機能拡張案を整理しました。

まずは 「複数タグ対応」「記事フィルタリング」「Slack投稿フォーマットの改善」 から進めると、より使いやすくなると考えています。

今後の実装の進捗は、Qiita記事で気長に共有していこうと考えています。

  • slackボットのgithubリポジトリ

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