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

 更新时间:2020年06月24日 09:11:53   作者:bibibabibobi k  
这篇文章主要介绍了python使用自定义钉钉机器人,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.添加自定义机器人

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&timestamp=XXX&sign=XXX

第三步,发送请求

url='生成的Webhook&timestamp={}&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)

结果:

 

整体代码:

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&timestamp={}&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 自定义钉钉机器人内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PyQt5 QThread倒计时功能的实现代码

    PyQt5 QThread倒计时功能的实现代码

    这篇文章主要介绍了PyQt5 QThread倒计时功能的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • python美多商城项目开发小结

    python美多商城项目开发小结

    这篇文章主要介绍了python美多商城项目开发小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • python 爬取天气网卫星图片

    python 爬取天气网卫星图片

    根据网站URL的规律编写的一个爬取天气网卫星图片的python爬虫,使用了requests包,感兴趣的朋友可以参考下
    2021-06-06
  • Python获取秒级时间戳与毫秒级时间戳的示例代码

    Python获取秒级时间戳与毫秒级时间戳的示例代码

    这篇文章主要介绍了Python获取秒级时间戳与毫秒级时间戳的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python实现识别图片内容的方法分析

    Python实现识别图片内容的方法分析

    这篇文章主要介绍了Python实现识别图片内容的方法,结合实例形式分析了tesseract模块的下载、安装配置及使用tesseract模块进行图片识别的相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • Python数据结构之列表与元组详解

    Python数据结构之列表与元组详解

    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推,元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号
    2021-10-10
  • python根据unicode判断语言类型实例代码

    python根据unicode判断语言类型实例代码

    这篇文章主要介绍了python根据unicode判断语言类型实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python向量化与for循环耗时对比分析

    python向量化与for循环耗时对比分析

    这篇文章主要介绍了python向量化与for循环耗时对比分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python中Django与Echarts的结合用法图文详解

    Python中Django与Echarts的结合用法图文详解

    ECharts是一个第三方控件,下面这篇文章主要给大家介绍了关于Python中Django与Echarts的结合用法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Python Tkinter基础控件用法

    Python Tkinter基础控件用法

    这篇文章主要介绍了Python Tkinter基础控件用法,包括窗口的显示、显示内置图片、弹出窗口、菜单等等,需要的朋友可以参考下
    2014-09-09

最新评论