python使用自定义钉钉机器人的示例代码


Posted in Python onJune 24, 2020

1.添加自定义机器人

python使用自定义钉钉机器人的示例代码

python使用自定义钉钉机器人的示例代码

2.编写python代码请求钉钉机器人所给的webhook

钉钉自定义机器人官方文档

安全方式使用加签的方式:

第一步,把timestamp+"\n"+密钥当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,最后再把签名参数再进行urlEncode,得到最终的签名(需要使用UTF-8字符集)。

参数 说明
timestamp 当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时
secret 密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串
import requests
 
 
#python 3.8
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 第一步得到的签名值

https://oapi.dingtalk.com/robot/send?access_token=XXXXXX×tamp=XXX&sign=XXX

第三步,发送请求

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)

结果:

 python使用自定义钉钉机器人的示例代码

整体代码:

import requests
 
 
#python 3.8
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 相关文章推荐
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
python查询mysql中文乱码问题
Nov 09 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
vscode 远程调试python的方法
Dec 01 Python
Python3计算三角形的面积代码
Dec 18 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
django序列化时使用外键的真实值操作
Jul 15 Python
Python定时任务APScheduler安装及使用解析
Aug 07 Python
字典算法实现及操作 --python(实用)
Mar 31 Python
pytorch中的weight-initilzation用法
Jun 24 #Python
pytorch查看模型weight与grad方式
Jun 24 #Python
pytorch  网络参数 weight bias 初始化详解
Jun 24 #Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 #Python
python3.x中安装web.py步骤方法
Jun 23 #Python
python如何删除文件、目录
Jun 23 #Python
TensorFlow保存TensorBoard图像操作
Jun 23 #Python
You might like
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
对python中return与yield的区别详解
2020/03/12 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
一道输出判断型Java面试题
2014/10/01 面试题
社区端午节活动方案
2014/01/28 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
三国演义读书笔记
2015/06/25 职场文书
《打电话》教学反思
2016/02/22 职场文书
python基础之模块的导入
2021/10/24 Python
Python实现仓库管理系统
2022/05/30 Python