Pythonから「slackweb」を使ってWebHook経由でSlackにPostする

仕事で、適当な処理をしてSlackにポストするという処理が必要になったので、大した処理でもなかったのでPythonで記述することにした。
で、ほかの処理と出口を揃えたい+Attachmentでちょっとリッチな通知をしたかったので、簡単にWebHookに投げてポストさせられるよう『slack-python-webhook(slackweb)』を利用することにした。

以下、作成時のソースサンプル。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import slackweb

# --- Slack Setting ---
SLACK_WEBHOOK='WebHookのURL'
SLACK_CHANNEL='#test'
SLACK_USER='SlackのPostユーザ'
SLACK_TEXT="Test Text"

# --- Slack Post ---
slack=slackweb.Slack(url=SLACK_WEBHOOK)
attachments=[]
attachment={"pretext": "テストのテキスト",
            "color": "#36a64f",
            "fields":[
                  {
                  "title": "AAA",
                  "value": "123",
                  },
                  {
                  "title": "BBB",
                  "value": "456",
                  }
              ]
            }
attachments.append(attachment)
slack.notify(text=SLACK_TEXT, channel=SLACK_CHANNEL, username=SLACK_USER, attachments=attachments)

上記のようなスクリプトを投げた場合、以下のようにSlackに投稿される。

Attachmentについては、いろいろな投稿方法がある。
詳細についてはこちらの公式ドキュメントを見るといいだろう。