監視・通知

Slack通知を始めよう — Slack Appの作成とBot Token取得ガイド

Slack Bot 監視

Slack通知を始めよう
Slack Appの作成とBot Token取得ガイド

サーバーの攻撃検知やエラー通知をSlackで受け取りたい。
その第一歩は Slack App を作成して Bot Token を取得することです。
この記事では、Slack APIの設定からチャンネルへのBot招待まで、順を追って解説します。

こんな人向けの記事です

  • サーバーのログやアラートをSlackに飛ばしたい
  • Slack Appの作り方がわからない
  • Bot TokenとWebhook URLの違いを知りたい
  • chat:write スコープの設定方法を知りたい

Bot Token vs Incoming Webhook

Slackに外部からメッセージを送る方法は主に2つあります。

方式特徴用途
Bot Token1つのトークンで複数チャンネルに投稿可能複数チャンネルへの通知(推奨)
Incoming Webhook1つのURLが1つのチャンネルに固定単一チャンネルへの通知

今回はログの種類ごとにチャンネルを分けるため、Bot Token方式を使います。1つのトークンで全チャンネルに投稿できるため管理が楽です。

Slack Appを作成する

Step 1

https://api.slack.com/apps にアクセスし、「Create New App」をクリックします。

Step 2

「From scratch」を選択します。

Step 3

アプリ名とワークスペースを入力します。

項目入力例
App NameServer Monitor(任意の名前)
Pick a workspace通知を受け取りたいワークスペース

「Create App」をクリックして完了です。

権限(Scopes)を設定する

Step 1

左メニューの「OAuth & Permissions」をクリックします。

Step 2

「Bot Token Scopes」セクションまでスクロールし、「Add an OAuth Scope」をクリックします。

Step 3

chat:write を追加します。

最小権限の原則

chat:write だけで十分です。不要な権限を追加しないようにしましょう。

ワークスペースにインストールする

Step 1

同じ「OAuth & Permissions」ページの上部にある「Install to Workspace」をクリックします。

Step 2

権限の確認画面で「許可する」をクリックします。

Step 3

インストール完了後、Bot User OAuth Tokenが表示されます。

xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx
トークンの取り扱い注意

このトークンはパスワードと同等です。Gitにコミットしたり、ソースコードにハードコーディングしないでください。
環境変数や.envファイルで管理しましょう。

チャンネルにBotを招待する

Bot Tokenで投稿するには、Botをチャンネルに招待する必要があります。

Step 1

Slackで通知先チャンネルを作成します(例: #server-alerts)。

Step 2

チャンネル内で以下のコマンドを実行してBotを招待します。

/invite @Server Monitor
招待を忘れると not_in_channel エラー

Botを招待せずにメッセージを送るとnot_in_channelエラーが返ります。チャンネルごとに招待が必要です。

動作確認(curlでテスト送信)

curlでSlack APIを直接叩いて、メッセージが送信されるか確認します。

ターミナル
curl -s -X POST "https://slack.com/api/chat.postMessage" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer xoxb-YOUR-TOKEN-HERE" \
  -d '{
    "channel": "#server-alerts",
    "text": "テスト通知: Slack連携が正常に動作しています"
  }'

成功すると以下のようなレスポンスが返ります。

{"ok":true,"channel":"C0XXXXXXX","ts":"1234567890.123456",...}
エラー原因対処法
not_in_channelBotがチャンネルに未招待/invite @Bot名で招待
channel_not_foundチャンネル名が間違いチャンネル名を確認
invalid_authトークンが無効トークンを再取得

Bot Tokenのセキュリティ

Bot Tokenを安全に管理するためのベストプラクティスです。

.env
SLACK_BOT_TOKEN=xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx
.gitignore
.env
Python
import os
token = os.environ.get('SLACK_BOT_TOKEN', '')
トークンが漏洩した場合

Slack Appの設定ページから「Revoke Token」でトークンを無効化し、再発行してください。

まとめ

  • Slack Appを作成し、chat:writeスコープを付与
  • Bot Token(xoxb-...)を取得し、環境変数で管理
  • 通知先チャンネルにBotを/inviteで招待
  • curlでテスト送信して"ok": trueを確認
  • トークンはGitにコミットせず、.envで管理

Slack Appの準備ができたら、次はDjangoやサーバーからログを送信する仕組みを構築しましょう。