我们在进行定时任务的时候,很多时候都想要及时的知道程序的运行情况。我们可用钉钉来提示我们,任务开始了,任务结束了,任务报错了等
一、 创建钉钉机器人
基于下图路径在群中添加机器人
二、通过钉钉机器人发送消息
发送的整个流程如下
在钉钉的gitHub上可以看到,总共有5种消息方式。
- DingTalkNotificationText
- DingTalkNotificationLink
- DingTalkNotificationMarkdown
- DingTalkNotificationActionCard
- DingTalkNotificationButton
这里仅仅以DingTalkNotificationText
的结构进行消息发送,对markdwon比较热衷的小伙伴可以试试用markdown进行消息
import json
import requests
def dingding_msg(msg, key_word='success'):
"""通过钉钉机器人发送消息
构建发送的消息的dict -> 转换成json -> 通过request向webhook中发送信息 -> 钉钉收到消息
数据结构参考源码:
https://github.com/timonwong/prometheus-webhook-dingtalk/blob/main/pkg/models/dingtalk.go
"""
headers = {'Content-Type': 'application/json; charset=utf-8'}
data = {
"msgtype": "text",
"text" : {"content": f'{key_word} | {msg}'},
"at" : {"atMobiles": ["mobile-phone"], "isAtAll": False}
}
post_data = json.dumps(data)
webhook = "https://oapi.dingtalk.com/robot/send?access_token=*****"
return requests.post(webhook, headers=headers, data=post_data)
dingding_msg('haha')