slackの小技集-Incoming Webhooks-
Incoming Webhooksとは、外部から簡単に指定したチャンネルへメッセージを送れる機能です。
使い所
外部(例:自社で管理してるサーバーなど)からslackにメッセージを送りたいときに一番簡単な方法です。
外部からslackにメッセージを送る方法は他にもあるのですが、一番設定に手間がかかりません。
例えば、自社で毎日稼働しているバッチが失敗したときのみ通知がslackが送られてくるなどの設定をするときに便利です。
設定の仕方
・図のように「Activate Incoming Webhooks」を「On」にする
・「Webhook URLs for Your Workspace」の「Add New Webhook to Workspace」をクリックする
・画面が切り替わり「Search for a channel」と表示さるので投稿したいチャンネルを選択する
・「Allow」をクリックすると画面が元に戻る
・「Webhook URL」が追加されるのでCopyする
・画面左側の「Settings」の「Install App」から「Reinstall App」をクリック
・再び投稿したいチャンネルをクリックする
送れるかの確認テスト:方法その1
今回はchromeの拡張機能を利用します。
https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo/details?hl=ja-JP
・「Method」を「POST」に設定
・Request URLに先ほどコピーしたURLを貼り付ける
・「Body」の「Body content type」を「application/json」を選ぶ
・「Editor view」が「Raw input」の場合はグレーの箇所に「{"text":"Hello, World!"}」と入力して「SEND」をクリック
・「Editor view」が「JSON Visual editor」の場合はKeyとvalueを入力する。
・slackの指定したチャンネルに「Hello、World!」と表示される
送れるかの確認テスト:方法その2
import json
import requests
def Incoming_Webhooks_post():
url = コピーしてきたURL
headers = {"Content-Type" : "application/json"}
data_json = json.dumps({"text": "Hello、World!"})
res = requests.post(url, headers=headers, data=data_json)
print(res)
Incoming_Webhooks_post()
・slackの指定したチャンネルに「Hello、World!」と表示される