隨著Slack工具的普及啊楚,越來越多的工作交流會在slack 的channel中進行。那么是不是可以把某些持續(xù)集成測試的結(jié)果或是告警之類的信息通過Slack發(fā)送給運維人員呢辆沦。
python有成熟的第三方lib支持Slack發(fā)送消息的功能脑奠,比如slack_sdk以及slackclient這兩個庫,本文提供了除了這兩個庫外条篷,只使用requests庫來實現(xiàn)slack消息通知的功能。
代碼如下:
import requests
import json
Token = "xxxxxxxxxxx"
def sendMessage(message):
channel = '#test-slack'
payload = {"text": message, "channel": channel, "link_names": True}
data = json.dumps(payload).encode("utf8")
url = 'https://slack.com/api/chat.postMessage'
header = {"Content-Type": "application/json; charset=utf-8", "Authorization": "Bearer " + Token}
response = requests.post(url, data=data, headers=header)
print(response.text)
if __name__ == "__main__":
sendMessage("@ixxxxxx hi, Mike")
Token需要我們到https://app.slack.com/apps這個網(wǎng)址去新增apps蛤织,這里可以選擇Bot赴叹,作為通知的消息發(fā)起人,在配置Bot的地方指蚜,你會找到Slack Token乞巧。
image.png
將Token替換為你的apps的Token后,運行腳本摊鸡,就可以完成發(fā)送消息的操作了绽媒。
如果你想有@某人的效果,payload里的link_names要為True柱宦。