2017年10月からSlackのWebAPIのchat.postMessage
でも、Slackに投稿したい内容をJSONで投げられるようになったそうです。
ということで、早速Pythonで試してみました。
import urllib.request
import json
url = 'https://slack.com/api/chat.postMessage'
headers = {
'Authorization': 'Bearer {ココにSlackのAPIを叩くためのOAuthトークン書いてね}',
'Content-Type': 'application/json; charset=utf-8'
}
method = 'POST'
data = {
"channel": "#general",
"username": "Pythonぼっと",
"text": "Pythonからメッセージ送るよ!",
"icon_emoji": ":snake:"
}
json_data = json.dumps(data).encode("utf-8")
req = urllib.request.Request(url=url, data=json_data, headers=headers, method=method)
res = urllib.request.urlopen(req, timeout=5)
print("Http status: {0} {1}".format(res.status, res.reason))
print(res.read().decode("utf-8"))
ちゃんと以下のようにSlackにメッセージを投稿できました!(何度かテストしているのでメッセージが複数件有ります)
さすがPythonすんなり動きました!