前回はLINEへ通知を送る方法でした。人や会社によって使っているツールが違うので、今回はPythonを使ってSlackに通知を送る方法を紹介します。
Pythonを使ってSlackへ通知を送る方法はいくつかありますが、初心者向けに2つの方法を紹介します。一つはslackwebライブラリを使用する方法、もう一つはrequestsライブラリを使用する方法です。
準備
1.Pythonをインストール
2.SlackのIncoming Webhook URLを取得
Incoming Webhook の URL取得方法
1.Slackで通知を受けるページを作成(もうページを作っていたらここは飛ばして)
2.Incoming Webhookのページへアクセス
https://my.slack.com/services/new/incoming-webhook/
3.Incoming Webhookのページで
・チャンネルへの投稿のところでチャンネルを選択(1.で作った通知を受けるページ)
・Incoming Webhook インテグレーションの追加をクリック
4.Webhook URLをコピー
追加をクリックすると下の方にインテグレーションの設定という欄ができる。
そこの「Webhook URL」をコピーする
5.その他の設定
インテグレーションの設定の中には色々な設定があります。
何もしなくてもいいですが、「名前をカスタマイズ」と「アイコンをカスタマイズする」の2つを設定しておくと通知がきた時に分かりやすいですよ。
名前やアイコンをカスタマイズしたら設定を保存してください。
方法1:slackwebライブラリを使う方法
冒頭で2つの方法があるといいました。
その一つがslackwebライブラリを使う方法です。
まずコードをかく前にslackwebライブラリをインストールします。
コマンドラインで以下のコマンドを実行してください。
pip install slackweb
実装
以下は、slackwebを使用してメッセージを送るPythonコードの例です。
import slackweb
webhook_url = ' ここに先ほどコピーしたwebhookのURLを入れてください '
slack = slackweb.Slack(url=webhook_url)
message = "こんにちは!これはslackwebライブラリを使って送信されたメッセージです。"
slack.notify(text=message)
方法2: requestsを使う方法
もう1つの方法がrequestsを使った方法です。
こちらではrequestsライブラリを以下のコマンドでインストールします。
pip install requests
実装
以下は、requestsを使用してメッセージを送るPythonコードの例です。
import requests
import json
webhook_url = ' ここに先ほどコピーしたwebhookのURLを入れてください '
message = {
"text": "こんにちは!これはrequestsライブラリを使って送信されたメッセージです。"
}
response = requests.post(
webhook_url, data=json.dumps(message),
headers={'Content-Type': 'application/json'}
)
if response.status_code != 200:
raise ValueError(
'Request to slack returned an error %s, the response is:\n%s'
% (response.status_code, response.text)
)
2つの方法がどのように適しているか
slackwebを使う方法
適している理由:
- シンプルで軽量: Webサイトのチェックや自動化などの結果を簡単に通知する用途に適している。
- 簡単な設定: Webhook URLの設定のみで使えるため、設定が非常に簡単。
欠点:
- 機能が限定的: 複雑な通知システムには向かない。
requestsを使う方法
適している理由:
- 柔軟性: カスタマイズ性が高く、HTTPリクエストを自由に作成できるため、特定の通知フォーマットに対応しやすい。
欠点:
- 手動設定が必要: JSONデータの生成やエラーハンドリングなど、手動で実装する部分が多い。
結論
今回は、Pythonを使ってSlackに通知を送る2つの方法(slackwebライブラリを使った方法とrequestsライブラリを使った方法)を紹介しました。どちらの方法も簡単に実装でき、あなたのプロジェクトに合わせて選択できます。ぜひ試してみてください。
ご感想をお聞かせください
この記事が役に立ったと感じたら、ぜひ共有してください。また、他のPythonを使ったチュートリアルについてもご興味があれば、コメント欄で教えてください!
コメント