使用python,操作钉钉群聊机器人发送消息
环境:python3.x
使用模块:requests,json
钉钉机器人开发文档:https://ding-doc.dingtalk.com/doc?spm=a1zb9.8233112.0.0.340c3a88sgMlJJ#/serverapi2/qf2nxq/404d04c3
一:创建钉钉群聊机器人
第一步,创建一个钉钉群聊自定义机器人
记住加签的密钥,忘记后也可在创建成功后查看(这里使用加签的方式)
完成后会有webhook地址出现,保存,可以用
二.创建完成后获取时间戳和签名
#python 3.8
import time
import hmac
import hashlib
import base64
import urllib.parse
timestamp = str(round(time.time() * 1000))
secret = 'this is 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))
print(timestamp)
print(sign)
得到两个参数timestamp和sign
三.尝试发送信息
发送格式:
curl ‘https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx’
-H ‘Content-Type: application/json’
-d ‘{“msgtype”: “text”,“text”: {“content”: “我就是我, 是不一样的烟火”}}’
import requests
import json
class dd:
def req(self):
#把第二步中获取到的 timestamp和sign拼接到URL中
url = 'https://oapi.dingtalk.com/robot/send?access_token=40093a95345619e8ca31cce66f8c6d6e670c3b5a8a3b2e22cd9bad79fec80ff4' \
'×tamp=1601026767952' \
'&sign=i1Qw0dOEQ7WLttuyRihZEGsJmCY%2BNpx2d4At53XaMKo%3D'
h = {'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
#d里面的at参数是需要at的人参数,只有at的人存在这个参数里面才会@成功
d = json.dumps({"msgtype": "text", "text": {"content": "嗯哼@157xxxx1995"},
"at": {"atMobiles": ["156xxxx8827","157xxxx1995"], "isAtAll": "false"}})
req = requests.post(url, data=d, headers=h)
print(req.text)
if __name__ == '__main__':
dd().req()
运行后群里就会出现
ok,这样我们就完成了python操作钉钉群机器人发送消息的操作了,是不是很方便,
我们以后可以在自动化测试出现问题或者中断的时候使用钉钉自动艾特相关人员了,哈哈哈
其他的几种安全设置也可以操作,在钉钉开发文档里面,自己可以看下,机器人发图片或者文档啥的都可以,在文档里面都有示例,不懂得就问~~
版权声明:本文为saber_sss原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。