slack-automation について
slack-automationは、Slackワークスペースの管理と内容分析を行うスキルです。チャンネル検索やメッセージ閲覧、社内情報の整理に向けており、操作は主に読み取り専用ですが、チャンネル作成にも対応します。Slack Bot Tokenを使い、ボットが参加しているチャンネルにアクセスします。
主な機能
- 01名前によるチャンネル検索
- 02チャンネルメッセージの閲覧
- 03チャンネルの作成
- 04トピック別のメッセージ分類
- 05ボットトークンによるSlackアクセス
活用シーン
- 01社内ニュースを週刊ニュースレター向けに要約
- 02Slackの議論に関連する会議の検索
- 03分類したメッセージをレポートに整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ casper-studios/ casper-marketplace --skill slack-automationインストール後、Claude Code で/slack-automationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/categorize.mdcreate-channel.mdfetch-news.mdsearch.mdscripts/categorize_slack_messages.pycreate_slack_channel.pyfetch_slack_news.pyslack_search.py詳細
Slack の自動化
概要
Slack ワークスペースで、チャンネルの管理、メッセージの読み取り、コンテンツの分析を行います。チャンネルの作成を除き、すべての操作は読み取り専用です。
クイック判断ツリー
What do you need?
│
├── Search for channels by name
│ └── references/search.md
│ └── Script: scripts/slack_search.py search
│
├── Read messages from a channel
│ └── references/fetch-news.md
│ └── Script: scripts/fetch_slack_news.py
│
├── Create a new channel
│ └── references/create-channel.md
│ └── Script: scripts/create_slack_channel.py
│
└── Categorize/analyze messages
└── references/categorize.md
└── Script: scripts/categorize_slack_messages.py
環境のセットアップ
# Required in .env
SLACK_BOT_TOKEN=xoxb-your-bot-token
必要なボットのスコープ
| スコープ | 用途 |
|---|---|
channels:read | パブリックチャンネルを一覧表示する |
channels:history | パブリックチャンネルのメッセージを読み取る |
groups:read | プライベートチャンネルを一覧表示する |
groups:history | プライベートチャンネルのメッセージを読み取る |
channels:manage | チャンネルを作成する |
一般的な使い方
チャンネルを検索する
python scripts/slack_search.py search "internal" --limit 10
チャンネルのメッセージを読む
python scripts/slack_search.py read "internal-client" --days 7
チャンネルを作成する
python scripts/create_slack_channel.py "project-alpha" --private
チャンネル名のパターン
クライアント用チャンネルの場合:internal-{client-name}
- 例:
internal-microsoft、internal-acme-corp
費用
無料です。Slack API のリクエストごとの費用はありません。レート制限は約 50 リクエスト/分です。
セキュリティに関する注意事項
認証情報の取り扱い
SLACK_BOT_TOKENは.envファイルに保存してください(git に絶対にコミットしないでください)- ボットトークンは
xoxb-で始まります。ログや出力に絶対に表示しないでください - 漏えいした場合は、Slack App の設定からトークンをローテーションしてください
- ハードコードした値ではなく、環境変数を使用してください
データプライバシー
- メッセージには社内の機密通信が含まれる場合があります
- メッセージの内容を永続的なログに保存しないでください
- 内容をコピーする代わりに、参照にはメッセージのリンク/IDを使用してください
- エクスポートしたメッセージに適用されるデータ保持ポリシーを確認してください
- ユーザープロフィールには PII(氏名、メールアドレス、プロフィール写真)が含まれます
アクセススコープ
- ユースケースに必要な最小限のスコープをリクエストしてください。
channels:read- パブリックチャンネルの一覧表示(読み取り専用)channels:history- パブリックチャンネルのメッセージの読み取り(読み取り専用)groups:read- ボットが参加しているプライベートチャンネルの一覧表示(読み取り専用)groups:history- プライベートチャンネルのメッセージの読み取り(読み取り専用)channels:manage- チャンネルの作成(書き込みアクセス)
- ボットがアクセスできるのは、招待されたチャンネルのみです
- スコープは Slack App Settings > OAuth & Permissions で確認してください
コンプライアンスに関する考慮事項
- 監査ログ:Slack Enterprise Grid では、コンプライアンス用の監査ログを利用できます
- メッセージの保持:組織のデータ保持ポリシーに従ってください
- GDPR:メッセージの内容には EU ユーザーの PII が含まれる場合があります
- 電子情報開示:エクスポートしたメッセージが法的保全の対象となる場合があります
- 社内コミュニケーション:Slack のデータは機密情報として扱ってください
- チャンネルのプライバシー:プライベートチャンネルへのアクセスには明示的な招待が必要です
トラブルシューティング
よくある問題
問題:チャンネルが見つからない
症状: 読み取りまたは投稿時に「channel_not_found」エラーが発生する 原因: チャンネル ID が無効、ボットがチャンネルに参加していない、またはプライベートチャンネルである 解決策:
- チャンネル ID が正しいことを確認する(
slack_search.py searchを使用) - ボットをチャンネルに招待する(
/invite @botname) - チャンネルがプライベートかどうか確認する。プライベートチャンネルにはボットへの明示的な招待が必要です
- チャンネルがアーカイブまたは削除されていないことを確認する
問題:権限またはスコープが不足している
症状: 「missing_scope」または「not_allowed_token_type」エラーが発生する 原因: ボットトークンに必要な OAuth スコープがない 解決策:
- Slack App Settings > OAuth & Permissions に移動する
- 必要なスコープ(
channels:read、channels:historyなど)を追加する - スコープを追加した後、アプリをワークスペースに再インストールする
- 正しいボットトークン(
xoxb-で始まるもの)を使用していることを確認する
問題:トークンの有効期限切れ、または無効
症状: 「invalid_auth」または「token_revoked」エラーが発生する 原因: OAuth トークンの有効期限が切れている、取り消されている、または設定が正しくない 解決策:
- Slack App の設定でボットを再認証する
- 取り消された場合はボットトークンを再生成する
.envのSLACK_BOT_TOKENの値が正しいことを確認する- トークンに空白や特殊文字が含まれていないことを確認する
問題:レート制限に達した
症状: 「ratelimited」エラーまたは 429 ステータスコードが発生する 原因: 短時間に API リクエストを送りすぎている 解決策:
- リクエストの間に遅延を入れる(1~2 秒)
- 一括操作のバッチサイズを小さくする
- 再試行時に指数バックオフを実装する
- Slack では、ほとんどのエンドポイントで約 50 リクエスト/分が許可されています
問題:プライベートチャンネルへのアクセスが拒否される
症状: 必要なスコープがあるにもかかわらず、プライベートチャンネルを読み取れません 原因: ボットがプライベートチャンネルに追加されていません 解決策:
- チャンネルメンバーにボットを招待してもらいます:
/invite @botname groups:readとgroups:historyのスコープが追加されていることを確認します- スコープの追加後にボットが再インストールされていることを確認します
リソース
- references/search.md - チャンネルの検索とメッセージの読み取り
- references/fetch-news.md - チャンネルからニュースを取得
- references/create-channel.md - 新しいチャンネルを作成
- references/categorize.md - AI によるメッセージの分類
統合パターン
Slack からニュースレターを作成
スキル: slack-automation → content-generation ユースケース: 社内ニュースを要約して週刊ニュースレターを作成 フロー:
- ニュース/お知らせチャンネルからメッセージを取得
- 関連するコンテンツを分類して絞り込み
- content-generation を使って、書式を整えたニュースレターのセクションを生成
Slack と会議のコンテキスト
スキル: slack-automation → transcript-search ユースケース: Slack の議論を調査する際に関連する会議を検索 フロー:
- Slack で顧客名またはトピックを検索
- 日付の範囲と参加者名を抽出
- transcript-search で関連する会議の録画を検索
Slack のレポートを Drive に保存
スキル: slack-automation → google-workspace ユースケース: 分類した Slack の要約を Google Drive にアーカイブ フロー:
- 社内チャンネルからメッセージを取得して分類
- 書式を整えたレポート文書を生成
- google-workspace を使って Google Drive にアップロード