Pythonからurllibを用いてslackに綺麗なメッセージを送る方法
pythonでslackを送る方法について記載します。
まず、SlackのWebhookを取得します。
Slackにログインした状態で、こちらのURLにアクセスすると以下の画面が表示されます。

画面が表示されたら、チャンネルを選択して、「Incoming Webhook インテグレーションの追加」をクリックします。
画面に、「Webhook URL」が表示されるので、それをコピーします。

- 以下のようなコードを書きます。
import json
from urllib import request
HOOK_URL ="https://hooks.slack.com/services/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"
#上でコピーしたWebHookURL
headers = {
'Content-Type': 'application/json; charset=utf-8'
}
slack_message = {
"username": "Python",
#slackへ送信元のユーザ名
"icon_emoji": ":snake:",
#slackのアイコン
"channel": "aa",
#送信先のチャンネル
"attachments": [
#slackへの本文
{
"color": "good",
#"#EEEEEE"などとして直接色を指定できます
"title": "1つ目のタイトル",
"text": "テキスト1",
"title_link": "https://www.google.com",
#タイトルの遷移先
"fields": [
{
"title": "フィールド1",
"value": "フィールドの値1",
"short": True
},
{
"title": "フィールド2",
"value": "フィールドの値2",
"short": True
}
]
},
{
"color": "danger",
"title": "2つ目のタイトル",
"text": "テキスト2",
"title_link": "https://yahoo.co.jp",
"fields": [
{
"title": "フィールド4",
"value": "フィールドの値5",
"short": True
},
{
"title": "フィールド6",
"value": "フィールドの値6",
"short": True
},
{
"title": "フィールド7",
"value": "フィールドの値7",
"short": False
}
]
}
]
}
req = request.Request(HOOK_URL, data=json.dumps(slack_message).encode("utf-8"), headers = headers, method='POST')
#リクエスト作成
try:
res = request.urlopen(req, timeout=5)
#リクエスト送信
except Exception as e:
print("Error")
以下のようなメッセージが送信されました。

slackのメッセージには、他にもいろんな設定ができます。詳細は以下のサイトでご確認下さい