今回は、pythonでslackに通知をする方法を説明します。
Contents
環境
pythonのバージョン:3.9.2
概要
- 関係モジュールのインストール
- slackでIncoming Webhookの設定をする
- pythonからslackへ任意のメッセージを送付する
事前準備
まず初めに、slackwebというモジュールをインストールします
pip3 install slackweb
上記のように表示されれば、インストール成功です。
slackでIncoming Webhookの設定
- Incoming Webhookの設定ページへアクセスします。
- 通知を飛ばす対象のチャンネルを選択し、「Incoming Webhookインテグレーションの追加」を押下します。
- 2の後に表示される画面で、Webhook URLをコピペします。
- 一番下までスクロールし、「設定を保存」を押下します。
サンプルコード
以下が最もシンプルな、slack通知のサンプルコードです。
import slackweb
slack = slackweb.Slack(url="コピーしたWebhookのURL")
slack.notify(text="slack通知テスト エラー発生!")
サンプルコードでの通知確認
以下のようにslackにちゃんと通知が届いています。
もう少しリッチなテキストの送信
公式APIDocを読むともう少しリッチなテキストを送ることも可能になっています。
改行を入れたい場合も、「\n」で入れることができます。
サンプルコード
import slackweb
_slack_url = 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxx'
slack = slackweb.Slack(url=_slack_url)
attachments = [
{
"mrkdwn_in": ["text"],
"color": "#36a64f",
"pretext": "Optional pre-text that appears above the attachment block",
"author_name": "author_name",
"author_link": "http://flickr.com/bobby/",
"author_icon": "https://placeimg.com/16/16/people",
"title": "title",
"title_link": "https://api.slack.com/",
"text": "Optional `text` that appears within the attachment",
"fields": [
{
"title": "A field's title",
"value": "This field's value",
"short": "false"
},
{
"title": "A short field's title",
"value": "A short field's value",
"short": "true"
},
{
"title": "A second short field's title",
"value": "A second short field's value",
"short": "true"
}
],
"thumb_url": "http://placekitten.com/g/200/200",
"footer": "footer",
"footer_icon": "https://platform.slack-edge.com/img/default_application_icon.png",
"ts": 123456789
}
]
slack.notify(text="test message \n with attachment", attachments=attachments)
以下のようなリッチなメッセージが送られてきました。