使用requests包实现调用slack API发送消息

随着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。

image.png

将Token替换为你的apps的Token后,运行脚本,就可以完成发送消息的操作了。

如果你想有@某人的效果,payload里的link_names要为True。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容