随着Slack工具的普及,越来越多的工作交流会在slack 的channel中进行。那么是不是可以把某些持续集成测试的结果或是告警之类的信息通过Slack发送给运维人员呢。
python有成熟的第三方lib支持Slack发送消息的功能,比如slack_sdk以及slackclient这两个库,本文提供了除了这两个库外,只使用requests库来实现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这个网址去新增apps,这里可以选择Bot,作为通知的消息发起人,在配置Bot的地方,你会找到Slack Token。
将Token替换为你的apps的Token后,运行脚本,就可以完成发送消息的操作了。
如果你想有@某人的效果,payload里的link_names要为True。
网友评论