
Slackは、チームや個人がリアルタイムでコミュニケーションできるビジネス向けチャットツールです。PC・スマホどちらでも使えるので、どこからでもアクセスできます。
また、プロジェクトごとにチャンネルを作成して、必要なメンバーだけ参加させることも可能です。
本記事では、Slack APIを使ってPythonにより通知を送信する方法についてご紹介します。
目次
Slackのアカウントを作成
SlackのアカウントはSlackの公式サイトで作成します。
Slackの公式サイトに入って、「Slackを始める」をクリックして、新規登録を行います。
メールアドレスを入力して「続行する」をクリックすると、入力したメールアドレスに確認コードが送られますので、それをブラウザに入力します。これでSlackのアカウントが作成されます。
ワークスペースの作成または参加
Slackは「ワークスペース」という単位で動作します。通知を送るためにはワークスペースに参加する必要があります。
新しいワークスペースを作成する場合には、「ワークスペースを作成する」を選択します。
すると、ワークスペースに関するいくつかの情報の入力を求められますので、順次設定していきます。
まず、Slackのワークスペースの名前を入力します。ワークスペースはSlack内での大きなグループで、そのグループに属する細分化されたグループをチャンネルとよびます。
たとえば、ワークスペースには社名やチーム名などを記入します。
次に、自分の名前とプロフィール写真を設定します。名前とプロフィール写真はあとから変更することができます。

次に、メンバーを招待します。メンバーに追加するには、メールアドレスを入力するか、あるいは招待リンクをコピーして招待したい人に送る方法があります。メンバーの追加はあとからでも行うことができます。
次に、チャンネルを設定します。チャンネルはワークスペースの中の小グループで、特定の話題やプロジェクトごとに会話を整理することができるSlackの機能で、必要な人だけが参加できるようにできます。
これで、新しいワークスペースが作成されます。
既存のワークスペースに参加する場合には、Slackの管理者から「招待URL」を送ってもらい、招待URLを開いて「参加」をクリックします。
以上で、ワークスペースの準備は完了です。
Webhookの設定(通知の準備)
Webhook(ウェブフック)は、特定のイベントが発生したときに、自動的に外部サービスに通知を送る仕組みです。つまり、何か起こったときに、自動で別のサービスにデータを送るシステムです。Slackでは、このWebhookを使って、外部のアプリやプログラムからSlackに通知を送ることができます。
例えば、システムがエラーで停止するなどのイベントが発生したら、Webhookが作動して事前に設定したURLにデータが送られ、Slackがメッセージを受け取る(指定したチャンネルに通知が届く)というような使い方ができます。
WebhookのURLを取得するには、まずSlack APIのページにアクセスします。
次に、「Create an App(アプリを作成)」をクリックします。すると、「From scratch」と「From a manifest」という2つのオプションのいずれかを選択するかを訊かれます。「From scratch」はゼロからアプリを作成する方法で、手動で設定でき、クリック操作で設定できるため初心者向けです。一方で、「From a manifest」は、事前に用意した設定ファイル(YAML)を使ってアプリを作成する方法で、設定のコピーを行うことで再利用が簡単という利点があります。
項目 | From scratch | From a manifest |
---|---|---|
設定方法 | UIで手動設定 | YAMLファイルで一括設定 |
カスタマイズ性 | 高い(細かく変更可能) | 高い(設定をプログラムで管理) |
初心者向け | はい(簡単に設定できる) | いいえ(YAMLの知識が必要) |
再利用性 | 低い(毎回手動で設定) | 高い(YAMLを貼るだけで同じ設定を利用できる) |
おすすめの用途 | Webhookによる通知、ボットの試作など | 本番環境に同じ設定のアプリをデプロイする |
本記事ではWebhookを使用して通知を送ることが目的であるため、「From scratch」を選択します。
次に、アプリ名を入力し、ワークスペースを選択します。例えば、アプリ名を「Slack通知Bot」などとし、ワークスペースは先ほど準備したものを選択します。
すると、設定画面に移りますので、右側のメニューのFeaturesにある「App Home」を選択し、Editボタンを押して「Display Name (Bot Name)」と「Default username」を設定します。
項目 | 説明 |
---|---|
Display Name (Bot Name) | アプリの表示名になります。日本語と英語のどちらでも設定できます。 |
Default Username | アプリの識別名になります。半角英数字で設定します。Botに対するメンションに使用します。 |
次に、右側のメニューのFeaturesにある「Incoming Webhooks」を選択し、「Activate Incoming Webhooks」をONにします。
すると、画面の下に「Webhook URLs for Your Workspace」という項目が表示されますので、「Add New Webhook to Workspace」をクリックします。
次に、通知を送りたいチャンネル(例:#自動通知)を選択し、「許可する」をクリックします。
これにより、Webhook URLが発行されるのでコピーします(右側のメニューのFeaturesにある「Incoming Webhooks」の「Webhook URLs for Your Workspace」に表示されます)。
https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXX
Webhook URLを知られるとなりすましのメッセージを送ることができるため、他人にWebhook URLを教えてはいけません。
Webhookを使ってSlackに通知を送る
取得したWebhook URLを使って、PythonからSlackにメッセージを送ることができます。メッセージの送信には、先ほど取得したWebhook URLを使用します。ここでは、メッセージの送信にrequests
パッケージを用います。
pip install requests
通知を送るサンプルコードをは以下になります。webhook_url
は先ほど取得したものに貼り換えます。
import requests
# Webhook URLをここに記述する
webhook_url = (
"https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXX"
)
# 送信するメッセージ
message = {"text": "Webhookを用いたSlackへのメッセージの送信だよ"}
# Slackに通知を送る
response = requests.post(webhook_url, json=message)
# 成功したかの確認
if response.status_code == 200:
print("通知を送信できました!")
else:
print(f"通知の送信に失敗しました: {response.text}")
実行すると、次のようにメッセージが設定したチャンネルに表示されます。
以上で、Slackに通知を送ることができました。
Slackの通知の利用例
例えば、次のようなことが可能になります。
- 業務効率化・タスク管理
- タスクの完了通知
- リマインダーの自動送信
- エラー・システム監視
- サーバーエラーの自動通知
- バックアップやバッチ処理の完了報告
- システム負荷やCPU使用率の警告
- セキュリティイベント(不正アクセスなど)のアラート通知
- チームコミュニケーション
- ミーティングの開始・リマインダー通知
- ユーザーの問い合わせ対応
- データ管理
- 定期的なデータ集計結果の通知
- 情報の定期的な取得
- 天気予報や為替レートの通知
- サイトの更新が行われたことの通知
- Webスクレイピングで得た情報を定期的に通知
まとめ
本記事では、Slackアカウントの作成方法、ワークスペースの作成方法、Webhook URLの取得手順、およびPythonを使った通知の送信方法 について詳しく解説しました。
Slackの通知機能を活用することで、業務の効率化やシステム監視、生活情報の取得など、さまざまな場面での自動化が可能 になります。知りたい情報をリアルタイムで受け取れる環境を整えることで、無駄な手間を減らし、より重要なことに集中できるようになります。通知機能を活用して、必要な情報を自動で受け取る環境を整え、より効率的なワークフローや快適な生活を実現するための参考になれば幸いです。