【Python】Slack通知を送る方法|WebhookとSlack APIの使い方

【Python】Slack通知を送る方法|WebhookとSlack APIの使い方 Python

バッチ処理やシステム監視、フォーム受付などの結果をリアルタイムにSlackへ通知できれば、業務の効率が大きく向上します。Pythonを使えば、Slackにメッセージを送信する処理を簡単に自動化できます。

この記事では、WebhookとSlack APIの2つの方法を使って、PythonからSlack通知を行う基本的な実装方法を紹介します。

方法①:Incoming Webhookで通知する

1. Webhook URLの発行

  1. Slack APIアプリページにアクセス
  2. 「Create New App」からアプリを作成
  3. 「Incoming Webhooks」を有効にし、「Add New Webhook to Workspace」
  4. 通知を送るチャンネルを選択して許可すると、Webhook URLが発行される

2. PythonからWebhook通知を送る

import requests

webhook_url = "https://hooks.slack.com/services/XXX/YYY/ZZZ"
message = {
    "text": "PythonからSlackに通知を送信しました!"
}

response = requests.post(webhook_url, json=message)

if response.status_code == 200:
    print("通知送信に成功しました")
else:
    print(f"通知失敗: {response.status_code}")

メリット: 設定が簡単で軽量、認証も不要。システム通知に最適。

方法②:Slack Web APIを使う

Slackのより高度な機能(DM送信、ファイルアップロード、ユーザー情報取得など)を使いたい場合は、Slack Web APIを利用します。

1. Botトークンの取得

  1. Slackアプリを作成し、「OAuth & Permissions」で権限(chat:write など)を追加
  2. 「Install App」してBot User OAuth Token(xoxb-***)を取得

2. PythonでSlack APIにPOST

import requests

slack_token = "xoxb-your-bot-token"
channel_id = "#通知チャンネル名"  # 例: "#general" またはユーザーID

message = {
    "channel": channel_id,
    "text": "Slack API経由でメッセージを送信しました!"
}

headers = {
    "Authorization": f"Bearer {slack_token}"
}

response = requests.post(
    "https://slack.com/api/chat.postMessage",
    headers=headers,
    data=message
)

if response.status_code == 200:
    print("送信成功")
else:
    print(f"エラー発生: {response.status_code}")

注意: Botトークンは機密情報のため、.envなどで安全に管理してください。

通知の応用例

  • 定期バッチの完了通知
  • エラーログ検知時のアラート
  • 問い合わせフォームの受付通知
  • AIの自動生成結果の共有

まとめ

Slackへの通知は、Incoming Webhookを使えば簡単に実装でき、Slack APIを使えば柔軟な制御も可能です。Pythonと連携することで、定期処理やエラー検知など、さまざまな自動化シナリオに応用できます。

まずはWebhookでシンプルな通知から始め、必要に応じてSlack APIでの高度な連携にステップアップしていきましょう。