python调用飞书机器人发送文件

当前飞书webhook机器人还不支持发送文件类型的群消息,可以申请创建一个机器人应用来实现群发送文件消息。
在这里插入图片描述

在这里插入图片描述

创建机器人后,需要开通一系列权限,然后发布。由管理员审核通过后,才可使用。

包括如下的权限,可以获取群的chat_id。
在这里插入图片描述

开通权限发布应用后,可以取到两个重要的参数:

app_id
app_secret

使用两个参数可以生成密钥tenant_access_token,

headers = {‘Authorization’: f’Bearer {get_token()}', ## 获取tenant_access_token, 需要替换为实际的token

def get_token():# 获取tenant_access_token,供上传图片接口使用url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"headers = {"Content-Type": "application/json; charset=utf-8",}payload_data = {"app_id": "cli_xxx","app_secret": "xxx",}response = requests.post(url=url, data=json.dumps(payload_data), headers=headers).json()print(response)token = response['tenant_access_token']return token```

上传文件

def upload_file(file_path):try:file_name = file_path.split(',')[0]url = "https://open.feishu.cn/open-apis/im/v1/files"form = {'file_type': 'stream','file_name': file_name,'file': (file_name, open(file_path, 'rb'),'text/plain')}  # 需要替换具体的path  具体的格式参考  https://www.w3school.com.cn/media/media_mimeref.aspmulti_form = MultipartEncoder(form)headers = {'Authorization': f'Bearer {get_token()}',  ## 获取tenant_access_token, 需要替换为实际的token}headers['Content-Type'] = multi_form.content_typer = requests.request("POST", url, headers=headers, data=multi_form)print(r.json())# print(response.headers['X-Tt-Logid'])  # for debug or oncall# print(response.content)  # Print Responseif r.json().get("code") == 0 and r.json().get("msg") == "success":logger.info(f"上传文件到飞书成功,msg={r.json()},{file_path=}")media_id = r.json().get('data').get('file_key')return media_idelse:logger.warning(f"上传文件到飞书异常,{r.json()=},{file_path=}")# Press the green button in the gutter to run the script.except Exception as e:# logger.warning("上传文件到企业微信失败")print("上传文件到飞书失败")print(e)# logger.warning(e)pass

发送文件到群

def send_file(file_path=None, media_id=""):"""机器人应用上传文件"""if not media_id:media_id = upload_file(file_path=file_path)time.sleep(1)url = 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id'msgContent = {"file_key": media_id}form = {"content": json.dumps(msgContent),"msg_type": "file","receive_id": "oc_xxx"}headers = {'Authorization': 'Bearer ' + get_token()}response = requests.post(url=url, data=json.dumps(form), headers=headers)print(response.json())

获取群的chat_id

def get_qun_list():url = 'https://open.feishu.cn/open-apis/im/v1/chats'headers = {'Authorization': 'Bearer ' + get_token()}response = requests.get(url=url, headers=headers)print(response.json())return response.json()['data']['items']def get_ _by_name(qun_name):items = get_qun_list()for i in items:if i.get('name') == str(qun_name):print(i.get('chat_id'))return i.get('chat_id')

发送成功
在这里插入图片描述

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

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

相关文章

kprobe 内核实现原理

kprobe是linux内核的一个重要的特性&#xff0c;是其他内核调试工具(perf&#xff0c;systemtap)的基础设施&#xff0c;同时内核BPF也是依赖于kprobe。 Kprobe结构体 < include/linux/kprobe.h > struct kprobe {struct hlist_node hlist; /* 所有注册的kprob…

深度学习服务器(Linux)开发环境搭建教程

当你拿到一台服务器的使用权时&#xff0c;最头疼的莫过于登陆服务区并配置开发环境。本文将从0开始&#xff0c;讲述一台刚申请的服务器远程登陆并配置开发环境的全过程。希望对你有所帮助 1.登陆服务器 打开MobaXterm软件&#xff0c;创建一个新的Session&#xff0c;选择S…

Linux 编译链接那些事儿(02)C++链接库std::__cxx11::basic_string和std::__1::basic_string链接问题总结

1 问题背景说明 在自己的项目源码中引用libeasysqlite.so时编译成功&#xff0c;但运行时遇到问题直接报错&#xff0c;找不到符号 symbol&#xff1a;_ZN3sql5FieldC1ENSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS_10field_typeEi。 2 问题描述和解…

图及谱聚类商圈聚类中的应用

背景 在O2O业务场景中&#xff0c;有商圈的概念&#xff0c;商圈是业务运营的单元&#xff0c;有对应的商户BD负责人以及配送运力负责任。这些商圈通常是一定地理围栏构成的区域&#xff0c;区域内包括商户和用户&#xff0c;商圈和商圈之间就通常以道路、河流等围栏进行分隔。…

MySQL EXPLAIN查看执行计划

MySQL 执⾏计划是 MySQL 查询优化器分析 SQL 查询时⽣成的⼀份详细计划&#xff0c;包括表如何连 接、是否⾛索引、表扫描⾏数等。通过这份执⾏计划&#xff0c;我们可以分析这条 SQL 查询中存在的 问题&#xff08;如是否出现全表扫描&#xff09;&#xff0c;从⽽进⾏针对优化…

双十一运动健身好物推荐,这几款健身好物一定不要错过!

双十一购物狂欢节又要到了&#xff0c;又要到买买买的时候了&#xff01;相信有很多想健身的小白还在发愁不知道买啥装备&#xff1f;别急&#xff0c;三年健身达人这就给你们分享我的年度健身好物&#xff01; 第一款&#xff1a;南卡Runner Pro4s骨传导耳机 推荐理由&#…

新概念汽车3d720度全景vr制作尽可能还原汽车的真实细节

一、什么是VR全景看车 VR全景看车是通过虚拟现实技术实现逼真的汽车观赏和试乘体验。消费者可以通过智能手机或者电脑pc端&#xff0c;进入写实的虚拟现实的汽车展厅或者场景&#xff0c;进行车辆的透彻了解和体验。这种技术让消费者能够更加方便地了解汽车的外观、内饰和功能特…

独立IP主机怎么样?对网站有什么影响

对于现在企业来说&#xff0c;搭建网站是必不可少的&#xff0c;而大部分企业网站都会选择使用虚拟主机搭建&#xff0c;且使用的也是共享IP的这样会 有许多的弊端&#xff0c;所以部分站长会选择独立IP搭建。那么到底独立IP主机怎么样呢&#xff1f;使用独立IP主机搭建对网站有…

VSCode 连接不上 debian 的问题

之前一台笔记本上安装了 debian12&#xff0c;当时用 vscode 是可以连接上的&#xff0c;但今天连接突然就失败了&#xff0c;失败信息是这样的&#xff1a; 查看失败信息 因为 debian 是自动获取 ip 地址的&#xff0c;以前能连接上时&#xff0c;ip 地址是 104&#xff0c;然…

OpenCloudOS9操作系统搭建Confluence8.0.4+Jira企业级WIKI

OpenCloudOS9操作系统搭建Confluence8.0.4+Jira企业级WIKI 1. 概要2. 系统基础环境配置3. 安装并配置MySQL3.1. 安装MySQL3.2. MySQL基本配置3.3. 创建Confluence数据库4. 安装并配置jira5. 破解jira6. 安装并配置Confluence7. 破解Confluence8. 优化配置Confluence9. confluen…

红队专题-新型webshell的研究

新型webshell的研究 招募六边形战士队员webshell与MemoryShell内存马新型一句话木马之Java篇 AES加密Class二进制解析友军防护为什么会被拦截SO waf防护规则END 一劳永逸绕过waf实现篇服务端实现 前言&#xff1a;你马没了利用JavaAgent技术发现并清除系统中的内存马介绍安全行…

centos7安装nginx-阿里云服务器

1.背景 2.准备工作步骤 2.1.安装gcc 阿里云服务器一般默认是安装了的 检查是否已安装 gcc -v 出现如下信息表示已安装: 如果没有安装,执行 yum -y install gcc 2.2.安装pcre,pcre-devel yum install -y pcre pcre-devel 2.3.安装zlib yum install -y zlib zlib-devel…

PS Raw中文增效工具Camera Raw 16

Camera Raw 16 for mac&#xff08;PS Raw增效工具&#xff09;的功能特色包括强大的图像调整工具。例如&#xff0c;它提供白平衡、曝光、对比度、饱和度等调整选项&#xff0c;帮助用户优化图像的色彩和细节。此外&#xff0c;Camera Raw 16的界面简洁易用&#xff0c;用户可…

Python + Selenium,分分钟搭建 Web 自动化测试框架!

在程序员的世界中&#xff0c;一切重复性的工作&#xff0c;都应该通过程序自动执行。「自动化测试」就是一个最好的例子。 随着互联网应用开发周期越来越短&#xff0c;迭代速度越来越快&#xff0c;只会点点点&#xff0c;不懂开发的手工测试&#xff0c;已经无法满足如今的…

【小白专用】PHP中的JSON转换操作指南 23.11.06

一、JSON的基础知识 1.1JSON数据格式 JSON数据格式是一组键值对的集合&#xff0c;通过逗号分隔。键值对由“键”和“值”组成&#xff0c;中间使用冒号分隔。JSON数据格式可以嵌套&#xff0c;而且可以使用数组 二、PHP中的JSON函数 JSON的操作需要使用编程语言进行处理&am…

从零开始搭建微服务

人狠话不多,直接开始少点屁话本着共同学习进步的目的和大家交流如有不对的地方望铁子们多多谅解 准备工具 开发工具 idea Java环境 jdk.18 Maven 3.8.6 仓库镜像阿里云 <mirror><id>alimaven</id><name>aliyun maven</name><url>https:…

.NET Core 中插件式开发实现

在 .NET Framework 中&#xff0c;通过AppDomain实现动态加载和卸载程序集的效果&#xff1b;但是.NET Core 仅支持单个默认应用域&#xff0c;那么在.NET Core中如何实现【插件式】开发呢&#xff1f; 一、.NET Core 中 AssemblyLoadContext的使用 1、AssemblyLoadContext简…

Javaweb之HTML,CSS的详细解析

2.4 表格标签 场景&#xff1a;在网页中以表格&#xff08;行、列&#xff09;形式整齐展示数据&#xff0c;我们在一些管理类的系统中&#xff0c;会看到数据通常都是以表格的形式呈现出来的&#xff0c;比如&#xff1a;班级表、学生表、课程表、成绩表等等。 标签&#xff…

输电线路AR可视化巡检降低作业风险

随着现代工业的快速发展&#xff0c;各行业的一线技术工人要处理的问题越来越复杂&#xff0c;一些工作中棘手的问题迫切需要远端专家的协同处理。但远端专家赶来现场往往面临着专家差旅成本高、设备停机损失大、专业支持滞后、突发故障无法立即解决等痛点。传统的远程协助似乎…

OFDM同步--载波频率偏差CFO

参考书籍&#xff1a;《MIMO-OFDM无线通信技术及MATLAB实现》 实验图基本都截取自该本书 一、什么是CFO OFDM解调是采用同步检波的方式&#xff0c;需要在接收机使用与发射机相同的载波信号进行向下变换恢复出基带信号。但在实际使用中无法获得完全相同的载波信号&#xff0c;…