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 相关文章推荐
python在windows命令行下输出彩色文字的方法
Mar 19 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
Flask实现跨域请求的处理方法
Sep 27 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 Python
python3 使用traceback定位异常实例
Mar 09 Python
如何把外网python虚拟环境迁移到内网
May 18 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
详解python内置模块urllib
Sep 09 Python
python海龟绘图之画国旗实例代码
Nov 11 Python
使用pytorch实现线性回归
Apr 11 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清除和销毁session的方法分析
2015/03/19 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
javascript英文日期(有时间)选择器
2007/05/02 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
JavaScript数据类型检测代码分享
2015/01/26 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
Vue创建头部组件示例代码详解
2018/10/23 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
jupyter notebook 重装教程
2020/04/16 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
金融学专科生自我鉴定
2014/02/21 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
万能检讨书2000字
2014/10/17 职场文书
2014年保洁工作总结
2014/11/24 职场文书
小学生思想品德评语
2014/12/31 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书