python操作钉钉机器人发送各种消息
python操作钉钉机器人发送各种消息
使用python,操作钉钉群聊机器人发送消息
环境:python3.x
使用模块:requests,json
钉钉机器人开发文档:https://ding-doc.dingtalk.com/doc?spm=a1zb9.8233112.0.0.340c3a88sgMlJJ#/serverapi2/qf2nxq/404d04c3
第一步,创建一个钉钉群聊自定义机器人
记住加签的密钥,忘记后也可在创建成功后查看(这里使用加签的方式)
完成后会有webhook地址出现,保存,可以用
#python 3.8
import time
import hmac
import hashlib
import base64
import urllib.parse
timestamp = str(round(time.time() * 1000))
secret = 'this is 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和sign
发送格式:
curl ‘https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx’
-H ‘Content-Type: application/json’
-d ‘{“msgtype”: “text”,“text”: {“content”: “我就是我, 是不一样的烟火”}}’
import requests
import json
class dd:
def req(self):
#把第二步中获取到的 timestamp和sign拼接到URL中
url = 'https://oapi.dingtalk.com/robot/send?access_token=40093a95345619e8ca31cce66f8c6d6e670c3b5a8a3b2e22cd9bad79fec80ff4' \
'×tamp=1601026767952' \
'&sign=i1Qw0dOEQ7WLttuyRihZEGsJmCY%2BNpx2d4At53XaMKo%3D'
h = {'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
#d里面的at参数是需要at的人参数,只有at的人存在这个参数里面才会@成功
d = json.dumps({"msgtype": "text", "text": {"content": "嗯哼@157xxxx1995"},
"at": {"atMobiles": ["156xxxx8827","157xxxx1995"], "isAtAll": "false"}})
req = requests.post(url, data=d, headers=h)
print(req.text)
if __name__ == '__main__':
dd().req()
运行后群里就会出现
ok,这样我们就完成了python操作钉钉群机器人发送消息的操作了,是不是很方便,
我们以后可以在自动化测试出现问题或者中断的时候使用钉钉自动艾特相关人员了,哈哈哈
其他的几种安全设置也可以操作,在钉钉开发文档里面,自己可以看下,机器人发图片或者文档啥的都可以,在文档里面都有示例,不懂得就问~~
python操作钉钉机器人发送各种消息相关教程
python闭包closure
python闭包closure 在讨论闭包之前,先总结一下python的命名空间namespace,一般的语言都是通过namespace来识别名字标识,无论是变量,对象,函数等等。python划分3个名字空间层次,local:局部,标识为当前函数内,当前类内,比如局部变量。global:全局,
Python类变量实例变量类方法实例方法静态方法的分析
Python类变量,实例变量,类方法,实例方法,静态方法的分析 Python作为动态语言,跟静态语言如c/c++有很大区别,其中的一个重要的特性就是Python的变量无需声明直接可用。同样,类的成员变量无需声明,直接可用。目的是为了动态语言跟灵活,在思路想到的时
Python绘制曲线图matplotlib库下的pyplot模块
Python绘制曲线图matplotlib库下的pyplot模块 Python数据分析(二) (一)制作散点图 散点图运用的是motplotlib库里的pyplot模块的scatter方法 题目:绘制北京地区3月和10月日均气温变化散点图,数据如下: a = [11, 17, 16, 11, 12, 11, 12, 6, 6, 7, 8, 9,
【python】以五分制绩点为基础的绩点计算器,可计算学分加权平均
【python】以五分制绩点为基础的绩点计算器,可计算学分加权平均分和平均学分绩点 目录 一、以五分制绩点为基础的绩点计算器 1.1 效果演示 1.2 完整源代码 参考博客 一、以五分制绩点为基础的绩点计算器 功能:可以录入成绩,查询科目,删除某个科目,修改某
Python 选择排序
Python 选择排序 本文章的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,滥用技术产生的风险与本人无关。 本文章是自己学习的一些记录。 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未
python--剑指offer--34. 二叉树中和为某一值的路径
python--剑指offer--34. 二叉树中和为某一值的路径 方法一:DFS + 回溯,先序 from typing import Listclass TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def pathSum(self, root: TreeNode, sum: int
【Python】Flask框架系列(三):session和cookie操作、get/post
【Python】Flask框架系列(三):session和cookie操作、get/post请求、钩子函数 在Flask中操作session 示例:设置session的过期时间 完整版 旧版 设置session的过期时间 示例 # encoding: utf-8from flask import Flask, sessionimport osfrom datetime impor
使用Conda Pack打包Python独立运行时环境
使用Conda Pack打包Python独立运行时环境 使用Conda Pack打包Python独立运行时环境 版本说明: python=2.7 Conda 的Pack工具,可以说是让我发现了新大陆。之前有个项目使用它解决了一个棘手的问题,一直没有整理相关笔记,时间长了容易淡忘,恰好有同事问我如