一、新建群机器人
首先手机版钉钉创建一个群,在电脑版钉钉打开群设置,点击机器人:
下一步,选择“Webhook”的机器人:
Webhook
下一步,要选择“加签”,复制里面的密钥,保存好后面要用:
加签
下一步,复制里面的Webhook地址,保存好后面要用:
Webhook地址
二、代码
使用上面的密钥修改SECRET ,使用上面的Webhook地址修改WEBHOOK_URL ,即可:
import time
import hmac
import hashlib
import base64
import urllib.parse
import json
import urllib.request
SECRET = 'xxxxxxxxxx'
WEBHOOK_URL = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx'
'''
消息内容常用Markdown格式:
标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
引用
> A man who stands for nothing will fall for anything.
文字加粗、斜体
**bold**
*italic*
链接
[this is a link](http://name.com)
图片
![](http://name.com/pic.jpg)
无序列表
- item1
- item2
有序列表
1. item1
2. item2
'''
def send_message(title: str, text: str, isAtAll: bool):
timestamp = str(round(time.time() * 1000))
secret = f'{SECRET}'
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
url = f'{WEBHOOK_URL}×tamp={timestamp}&sign={sign}'
header = {
"Content-Type": "application/json",
"Charset": "UTF-8"
}
data = {
"msgtype": "markdown",
"markdown": {"title": title,
"text": text
},
"at": {
"isAtAll": isAtAll # isAtAll:是否@所有人
}
}
sendData = json.dumps(data)
sendDatas = sendData.encode("utf-8")
request = urllib.request.Request(url=url, data=sendDatas, headers=header)
opener = urllib.request.urlopen(request)
ret = opener.read()
# 输出响应结果
print(ret)
if __name__ == '__main__':
send_message("this is title", 'this is message **bold**', True)
三、参考
办公利器:用Python向钉钉发送消息 --- blog.csdn.net/qq_43965708/article/details/125309826
网友评论