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

时间: 2020-06-22

python钉钉机器人运维脚本监控实例

如下所示: #!/usr/bin/python3 # -*- coding:UTF-8-*- # Author: zhuhongqiang from urllib import request import json from sys import argv access_token = "xxx" def send_msg(mobile, item_name): """ 钉钉机器人API接口地址: https://open-doc.dingtalk.co

python 调用钉钉机器人的方法

以text格式的消息为例:(只需修改content后的内容) Import json Import requests url='https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxx' HEADERS={"Content-Type":"application/json;charset=utf-8"} String_textMsg={"msgtype":"text&

Python第三方包之DingDingBot钉钉机器人

这个是作者自己封装的一个钉钉机器人的包,目前只支持发文本格式.链接格式.markdown格式的消息,我们可以在很多场景用到这个,比如告警通知等 安装 pip install DingDingBot 使用方法 from DingDingBot.DDBOT import DingDing # 初始话DingDingBOt webhook是钉钉机器人所必须的 dd = DingDing(webhook='https://oapi.dingtalk.com/robot/send?access_token

Python第三方包PrettyTable安装及用法解析

可以让我们将数据用表格的方式展示出来 安装方式 pip install PrettyTable 测试是否安装成功 使用方法与对比增加一条数据 先简单的看下如何使用以及效果 import prettytable table = prettytable.PrettyTable() # 定义表头 table.field_names = ['name','age','sex'] # 增加一行数据,列表里的元素按照顺序对应表头 table.add_row(['Jruing','23','男']) prin

解决pip安装的第三方包在PyCharm无法导入的问题

一般我们安装Python的第三方包都会在终端执行下列命令进行安装: pip install 要安装的包名 安装成功后发现在PyCharm中仍然存在找不到包的问题,为什么呢? 总之就是PyCharm找不到pip安装的包的路径,比如我之前用pip安装的matplotlib包的路径: pip show matplotlib 显示如下: Name: matplotlib Version: 3.1.2 Summary: Python plotting package Home-page: https://

钉钉群自定义机器人消息Python封装的实例

一.钉钉群自定义机器人介绍 钉钉群机器人是钉钉群的一个高级扩展功能,然而使用起来却非常简单,只有注册一个钉钉账号即可,就可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合Github.Gitlab等源码管理服务,实现源码更新同步:通过聚合Trello.JIRA等项目协调服务,实现项目信息同步:同事,支持Webhook协议的自定义接入,支持更多可能性,例如:将运维报警提醒.自动化测试的结果报告提醒.工作.生活日程安排(上班打卡.下班吃饭.健身.读书.生日.纪念日-)等等的提

Python调用钉钉自定义机器人的实现

前言:由于公司使用钉钉,之前告警都是使用邮箱,但是这种协同效率比较低,所以调用钉钉机器人来实现实时告警. 创建机器人:创建钉钉群,然后添加群机器人. python代码如下: #1.导包 import json import requests #2.钉钉机器人的调用 def dd_robot(msg): HEADERS = {"Content-Type": "application/json;charset=utf-8"} key = "钉钉机器人的KEY&

SpringBoot实现钉钉机器人消息推送的示例代码

零.前言 上一次做消息推送,是微信公众号的定时消息通知. 由于自己当时的水平不够,加上企鹅家的开发文档普遍不太友好,导致根本看不懂文档在写什么,不得不去看第三方博客来学习公众号的开发. 这次就不一样了,昨天刚看了一下,阿里的开发文档比鹅厂要清晰的多,而且在同一功能上,使用了多种语言作为示例代码,可以说很友好了.可能这就是阿里和鹅厂的区别吧...辣鸡文档和好文档的区别... 本着"授之以渔"的态度,写了这篇文章,作为官方文档的补充. 一.在群里添加机器人 在群设置的智能群助手中添加自定义

浅谈Python 钉钉报警必备知识系统讲解

本章所讲内容: 1.钉钉报警设置 2.钉钉报警脚本运行. 1.钉钉报警设置 钉钉,关于webhook的报警需求,钉钉报警也是我们在公司中常见的报警系统,在这里主要是结合zabbix二次开发使用,来达到完美报警的使用. 1.1.钉钉报警第一步,创建群机器人 接口地址: https://oapi.dingtalk.com/robot/send?access_token=a25324cafc5b0f2bb239b5e56c71e7f378f570a3d281160dbec9e4f8c4a7e493 文