【python_钉钉群发图片】

需求:

**在钉钉群发图片,需要以图片的形式展示,如图所示:**

在这里插入图片描述
但是目前影刀里面没有符合条件的指令
在这里插入图片描述

解决方法:

1、在钉钉开发者后台新建一个自建应用,发版,然后获取里面的appkey和appsecret,根据这两个参数调用API生成access_token,以提供给上传文件的接口试用。获取企业内部应用的access_token
2、调用上传临时素材的API,将本地图片上传,生成media_id。上传媒体文件
3、在内部群随便新建一个自定义的机器人。调用自定义机器人发送钉钉群通知的API,在请求路径里面需要有时间和签名,签名根据自定义机器人中的加签编码生成。请求体里面填markdown的形式,然后将图片的media_id写进去。自定义机器人发送群消息

# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块import xbot
from xbot import print, sleep
from .import package
from .package import variables as glvdef main(args):passimport requests
import json
import base64
import time
import hmac
import hashlibdef get_temporary_material_access_token(appkey, appsecret):get_access_token_url = "https://oapi.dingtalk.com/gettoken"params = {'appkey': appkey,'appsecret': appsecret}response = requests.get(get_access_token_url, params=params)if response.status_code == 200:data = response.json()if 'access_token' in data:return data['access_token']else:print("获取临时素材access_token失败,响应数据格式错误")return Noneelse:print(f"获取临时素材access_token失败,状态码:{response.status_code}")return Nonedef generate_sign(secret, timestamp):"""生成加签"""string_to_sign = f'{timestamp}\n{secret}'hmac_code = hmac.new(secret.encode("utf-8"), string_to_sign.encode("utf-8"), digestmod=hashlib.sha256).digest()sign = base64.b64encode(hmac_code).decode("utf-8")return signdef send_image_to_dingtalk(appkey,appsecret,webhook_url,secret,image_path):# 获取上传临时素材所需的access_tokenupload_access_token = get_temporary_material_access_token(appkey, appsecret)if upload_access_token is None:print("获取access_token失败,无法继续执行")returntimestamp = str(round(time.time() * 1000))sign = generate_sign(secret, timestamp)try:# 使用获取到的upload_access_token替换为实际的上传临时素材链接upload_media_url = f'https://oapi.dingtalk.com/media/upload?access_token={upload_access_token}&type=image'with open(image_path, 'rb') as f:files = {'media': ('image.jpg', f.read())}upload_response = requests.post(upload_media_url, files=files)if upload_response.status_code == 200:media_response = json.loads(upload_response.text)if 'media_id' in media_response:media_id = media_response['media_id']post_url = '{}&timestamp={}&sign={}'.format(webhook_url, timestamp, sign)# 构造加签请求头headers = {'Content-Type': 'application/json'}payload = {"msgtype": "markdown","markdown": {"title": "图片","text": f"![图片]({media_id})"},}send_response = requests.post(post_url, headers=headers, data=json.dumps(payload))if send_response.status_code == 200:print("图片已成功发送至钉钉群聊")else:print(f"发送失败,错误信息:{send_response.text}")else:print("上传图片失败,响应数据格式错误")else:print(f"上传图片失败,状态码:{upload_response.status_code}")except FileNotFoundError:print(f"无法找到指定的图片文件:{image_path}")except Exception as e:print(f"发送过程中出现错误:{str(e)}")

在这里插入图片描述
在这里插入图片描述

参考文章:
1、钉钉群聊机器人发送本地图片解决方案–不用图床版(附源码)
2、怎么调用钉钉机器人发本地图片到钉钉群中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4025.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R数据分析:有调节的中介与有中介的调节的整体介绍

单独的有调节的中介或者有中介的调节好多同学还大概能看明白,但是两个东西一起说我发现大部分同学就懵逼了。今天我就尝试将两种方法一起讲讲,重点帮助大家厘清两种方法的异同。 先从整体上看下两者的概念: 有中介的调节首先落脚在调节,调节作用必须是显著的,并且这个调…

DETR论文阅读

1. 动机 传统的目标检测任务需要大量的人工先验知识,例如预定义的先验anchor,NMS后处理策略等。这些人工先验知识引入了很多人为因素,且较难处理。如果能够端到端到直接生成目标检测结果,将会使问题变得很优雅。 2. 主要贡献 提…

天机学堂5-XxlJobRedis

文章目录 梳理前面的实现:Feign点赞改进 day07-积分系统bitmap相关命令签到增加签到记录计算本月已连续签到的天数查询签到记录 积分表设计签到-->发送RabbitMQ消息,保存积分对应的消费者:**消费消息 用于保存积分**增加积分查询个人今日积…

万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用

文章目录 一、引言二、ARINC 653背景三、整体系统架构四、应用/执行(APEX)接口五、ARINC 653 RTOS内部机制六、健康监测功能七、软件应用八、ARINC 653现状九、总结 一、引言 在现代航空领域,综合模块化航空电子设备(IMA&#xf…

认识 MySQL 和 Redis 的数据一致性问题

参考:https://zhuanlan.zhihu.com/p/429637485 1. 什么是数据的一致性 “数据一致”一般指的是:缓存中有数据,缓存的数据值 数据库中的值。 但根据缓存中是有数据为依据,则”一致“可以包含两种情况: 缓存中有数据…

【论文笔记】SmileSplat:稀疏视角+pose-free+泛化

还是一篇基于dust3r的稀疏视角重建工作,作者联合优化了相机内外参与GS模型,实验结果表明优于noposplat。 abstract 在本文中,提出了一种新颖的可泛化高斯方法 SmileSplat,可以对无约束(未标定相机的)稀疏多…

创建 pdf 合同模板

创建 pdf 合同模板 一、前言二、模板展示三、制作过程 一、前言 前段时间要求创建“pdf”模板,学会了后感觉虽然简单,但开始也折腾了好久,这里做个记录。 二、模板展示 要创建这样的模板 三、制作过程 新建一个“Word”,这里命…

电力场景红外测温图像绝缘套管分割数据集labelme格式2436张1类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):2436 标注数量(json文件个数):2436 标注类别数:1 标注类别名称:["arrester"] 每个类别标注的框数&am…

【网络协议】RFC3164-The BSD syslog Protocol

引言 Syslog常被称为系统日志或系统记录,是一种标准化的协议,用于网络设备、服务器和应用程序向中央Syslog服务器发送日志消息。互联网工程任务组(IETF)发布的RFC 3164,专门定义了BSD Syslog协议的规范和实现方式。通…

正态分布检验(JB检验和威尔克检验)和斯皮尔曼相关系数(继上回)

正态分布的检验 1,JB检验(n>30) (1)偏度和峰度 描述函数正不正,高不高的 Matlab中计算偏度和峰度的函数是:skewness() 和 kurtosis() 我们以normrnd来生成一个100*1的均值为2,标准差为3的正态分布(这里采用的第一个公式) 得到下面的数据,因为这个…

搭建一个基于Spring Boot的书籍学习平台

搭建一个基于Spring Boot的书籍学习平台可以涵盖多个功能模块,例如用户管理、书籍管理、学习进度跟踪、笔记管理、评论和评分等。以下是一个简化的步骤指南,帮助你快速搭建一个基础的书籍学习平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个…

基于Python的心电图报告解析与心电吸引子绘制

一、引言 1.1 研究背景与意义 心脏作为人体的核心器官,其正常电活动对于维持生命活动至关重要。心电图(Electrocardiogram,ECG)作为记录心脏电活动随时间变化的重要工具,能够直观反映心脏的节律、传导等功能状态&…

【大数据】机器学习------支持向量机(SVM)

支持向量机的基本概念和数学公式: 1. 线性可分的支持向量机 对于线性可分的数据集 ,其中(x_i \in R^d) 是特征向量 是类别标签,目标是找到一个超平面 ,使得对于所有 的样本 ,对于所有(y_i -1) 的样本,…

左神算法基础提升--4

文章目录 树形dp问题Morris遍历 树形dp问题 求解这个问题需要用到我们在基础班上学到的从节点的左子树和右子树上拿信息的方法。 求最大距离主要分为两种情况:1.当前节点参与最大距离的求解;2.当前节点不参与最大距离的求解; 1.当前节点参与最…

53,【3】BUUCTF WEB october 2019 Twice SQLinjection

题目得到信息,2次注入,进入靶场 登录页面,很自然想到SQL 第一次注入应该是这个可以登录,注册,提交简介的页面 第二次注入应该是在info处注入,信息显示在简介处 我真的纯脑子有病,人家二次注入不…

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)图像变换

形态变换 图像处理中的形态学操作是处理图像结构的有效方法。以下是一些常见的形态学操作的介绍及其在 OpenCV 中的实现示例。 1. 腐蚀(Erosion) 腐蚀操作通过消除图像边界来减少图像中的白色区域(前景),使物体的边…

Spring Boot + Apache POI 实现 Excel 导出:BOM物料清单生成器(支持中文文件名、样式美化、数据合并)

目录 引言 Apache POI操作Excel的实用技巧 1.合并单元格操作 2.设置单元格样式 1. 创建样式对象 2. 设置边框 3. 设置底色 4. 设置对齐方式 5. 设置字体样式 6.设置自动换行 7. 应用样式到单元格 3. 定位和操作指定单元格 4.实现标签-值的形式 5.列宽设置 1. 设…

python(25) : 含有大模型生成的公式的文本渲染成图片并生成word文档(支持flask接口调用)

公式样例 渲染前 \[ \sqrt{1904.615384} \approx 43.64 \] 渲染后 安装依赖 pip install matplotlib -i https://mirrors.aliyun.com/pypi/simple/ requestspip install sympy -i https://mirrors.aliyun.com/pypi/simple/ requestspip install python-docx -i https…

基于32QAM的载波同步和定时同步性能仿真,包括Costas环的gardner环

目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): 仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要 载波同步是…

ARP Check

ARP Check所解决的问题 ARP Check主要用于解决ARP欺骗的问题,依赖于DHCP SnoopingIP Source Guard或者是端口安全全局地址绑定来达到防止ARP欺骗的作用 一旦在端口下配置了ARP Check功能,那么如果不是表项中所对应的IPMAC或是IP的话,就会拒…