SlackのIncoming Webhookを使う
json形式でWebhook用のURLにPOSTするだけ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import os import json import requests
class SlackWebHook(): def __init__(self, webhook_url, user_name, channel): self.incoming_webhook_url = webhook_url self.user_name = user_name self.channel = channel
def post(self, message): post_dic = { "text":message, "username":self.user_name, "icon_emoji":':ghost:', "channel":self.channel, }
requests.post(self.incoming_webhook_url, data=json.dumps(post_dic))
if __name__=='__main__': incoming_webhook_url = os.environ['SLACK_INCOMING_WEBHOOK_URL'] slack = SlackWebHook(incoming_webhook_url, "JobRunner-BOT", '#report') slack.post("テストメッセージ <https://www.google.co.jp>")
|
Slackの設定
SlackのAppからIncoming WebHooksを選択。
![IncomingWebhook width=640](https://res.cloudinary.com/dixu1vjpk/image/upload/c_scale,f_auto,q_auto:good,w_640/v1/python-slack-webhook/2020-04-22-slack-app-01.png)
Appディレクトリで確認する。
![IncomingWebhook width=640](https://res.cloudinary.com/dixu1vjpk/image/upload/c_scale,f_auto,q_auto:good,w_640/v1/python-slack-webhook/2020-04-22-slack-app-02.png)
Slackに追加。
![IncomingWebhook width=640](https://res.cloudinary.com/dixu1vjpk/image/upload/c_scale,f_auto,q_auto:good,w_640/v1/python-slack-webhook/2020-04-22-slack-app-03.png)
投稿先のチャンネルを選択。
![IncomingWebhook width=640](https://res.cloudinary.com/dixu1vjpk/image/upload/c_scale,f_auto,q_auto:good,w_640/v1/python-slack-webhook/2020-04-22-slack-app-04.png)
Webhook URLを取得する。
![IncomingWebhook width=640](https://res.cloudinary.com/dixu1vjpk/image/upload/c_scale,f_auto,q_auto:good,w_640/v1/python-slack-webhook/2020-04-22-slack-app-05.png)