本文摘自php中文网,作者coldplay.xixi,侵删。

1.添加自定义机器人


相关学习推荐:python视频教程
2.编写python代码请求钉钉机器人所给的webhook
钉钉自定义机器人官方文档
安全方式使用加签的方式:
第一步,把timestamp+"\n"+密钥当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,最后再把签名参数再进行urlEncode,得到最终的签名(需要使用UTF-8字符集)。
参数 | 说明 |
timestamp | 当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时 |
secret | 密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import requests
import time
import hmac
import hashlib
import base64
import urllib.parse
timestamp = 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和第一步得到的签名值拼接到URL中。
参数 | 说明 |
timestamp | 第一步使用到的时间戳 |
sign | 第一步得到的签名值 |
第三步,发送请求
1 2 3 4 5 6 7 8 9 10 11 12 13 | url = '生成的Webhook×tamp={}&sign={}' . format (timestamp, sign)
print (url)
headers = {
'Content-Type' : 'application/json'
}
json = { "msgtype" : "text" ,
"text" : {
"content" : "888"
} }
resp = requests.post(url = url,headers = headers,json = json)
print (resp.text)
|
结果:

整体代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import requests
import time
import hmac
import hashlib
import base64
import urllib.parse
timestamp = 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 = '生成的Webhook×tamp={}&sign={}' . format (timestamp, sign)
print (url)
headers = {
'Content-Type' : 'application/json'
}
json = { "msgtype" : "text" ,
"text" : {
"content" : "测试"
} }
resp = requests.post(url = url,headers = headers,json = json)
print (resp.text)
|
相关学习推荐:编程视频
以上就是学习python使用自定义钉钉机器人的示例代码的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python动态定义函数的方法介绍
Python命令行参数是什么
Python怎样实现百度语音识别api的步奏详解
Python中range()函数和list的比较
Python如何生成exe文件
Python都有哪些框架
如何安装Python包
Python闰年判定代码是什么
Python内置变量的一个例子
知道Python 为什么要有 pass 语句?
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 学习python使用自定义钉钉机器人的示例代码