钉钉是目前最流行的办公软件,我在工作中大部分时间都在和他打交道。今天给大家分享一下如何使用Python向钉钉发送消息,最终实现每天自动将销售报表发送到指定群。新建群组机器人,首先打开群组设置,点击智能群组助手。选择添加自定义机器人,根据提示添加信息。建议选择前两项安全设置。这里签名的密钥需要保存起来以备后用。点击完成后,会生成一个Webhook地址。不要随便公开这个地址和密钥。将其放在外部网站上会带来安全风险。获取签名值我们此时已经获取到了密钥和Webhook,首先解析密钥得到时间戳(timestamp)和签名值(sign),代码如下。importtimeimporthmacimporthashlibimportbase64importurllib.parsetimestamp=str(round(time.time()*1000))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作为两个关键参数,用Webhook拼接。https://oapi.dingtalk.com/robot/send?access_token=XXXXXX×tamp=XXX&sign=XXXaccess_token参数的值在创建机器人的时候已经包含在Webhook中,这里只需要传入的值即可时间戳和签名以获得完整的Webhook。钉钉消息种类钉钉消息种类繁多,您可以根据需要选择发送的消息类型。我使用的是Markdown格式,目前只支持基本的Markdown语法。一开始以为是谦虚,亲身测试后发现并不支持,只支持一小部分HTML语法。标题#一级标题##二级标题###三级标题####四级标题#####五级标题######六级标题引用>一个人什么都不代表就会倒下为了任何东西。粗体文本,斜体**粗体***斜体*链接[这是一个链接](http://name.com)图片none序列表-item1-item2顺序列表1.item12。item2Python发送请求整体代码并不复杂,完整代码如下。importtimeimporthmacimporthashlibimportbase64importurllib.parseimportdatetimeimportjsontimestamp=str(round(time.time()*1000))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)url=f'https://oapi.dingtalk.com/robot/send?access_token=xxxx×tamp={timestamp}&sign={sign}'defsend_request(url,datas):header={"Content-Type":"application/json","Charset":"UTF-8"}sendData=json.dumps(datas)sendDatas=sendData.encode("utf-8")request=urllib.request.Request(url=url,data=sendDatas,headers=header)opener=urllib.request.urlopen(request)#输出响应结果print(opener.read())defget_string():'''你要发送的内容,注意消息格式,如果选择markdown,字符串中要包含Markdown格式的内容例子:"
