feishu-send-file

⚠️ 飞书文件与图片可靠投递

基于飞书官方 API 构建,稳定解决文件(HTML/PDF/代码等)上传与发送问题,并专门修复本地图片发送显示路径而非图片的常见故障,提供可靠消息触达保障。

收藏
6k
安装
2.4k
版本
1.2.1
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

feishu-send-file 是一款专门用于通过飞书机器人向用户发送普通文件(如 HTML、PDF、ZIP、代码文件)和稳定投递本地图片的技能。它严格遵循飞书官方 API 规范,提供两种主要功能:第一,普通文件的两步发送机制(先调用 im/v1/files 获取 file_key,再通过 msg_type=file 发送);第二,针对“本地图片在飞书中只显示路径文本而非图片本体”这一棘手问题,提供了基于 im/v1/images 接口的稳定图片上传脚本,确保用户最终看到的是图片本身,而非无效的路径字符串。

显著优点

1. 解决真实痛点:技能专门补救 OpenClaw 或飞书插件在某些场景下无法正确处理本地图片路径的固有问题,提供了一条稳定、可靠的图片发送备选链路,实用性极强。
2. 行为高度透明:所有网络请求仅发往飞书/Lark 官方 API 端点(open.feishu.cnopen.larksuite.com),无任何第三方中转或数据泄露风险,并且代码功能与声明完全一致,无隐藏行为。

3. 零外部依赖:两个核心 Python 脚本仅使用 sysosjsonurllibsubprocess 等 Python 标准库,杜绝了供应链攻击和依赖冲突风险,部署和维护极为简单。

4. 多环境兼容:脚本同时支持飞书和 Lark(国际版)环境,只需通过 domain 参数或 --lark 标志即可切换,覆盖更广泛的用户群体。

潜在缺点或局限性

1. 代码实现有轻微质量顾虑:Python 脚本使用 subprocess.run 调用外部 curl 命令进行文件上传,而非使用 Python 原生的 urllib.request 进行多部分表单上传,这引入了对系统 curl 的依赖,且存在理论上的命令注入窗口(尽管在内部参数传递的场景下实际风险极低)。
2. 凭证传递方式不够安全:飞书应用的 app_idapp_secret 通过命令行参数传入脚本,在多用户系统中,可能通过 ps aux/proc/*/cmdline 被他人窥探,存在凭证泄露隐患。

3. 文档示例存在不良实践:SKILL.md 中为 AI 助手展示的 exec(f"""...""") 动态拼接命令的示例模式,虽然是教学用途,但容易误导开发者采用不安全的动态代码执行,有违安全编码原则。

4. 来源可信度有限:该技能由个人开发者 dadaniya99 维护(T3 来源),其公开的信誉和社区影响力信息较少,用户需要自行评估长期维护和问题响应能力。

适合的目标群体

  • 深度使用飞书/Lark 进行工作协作的开发者,尤其是经常需要通过机器人自动发送报告、代码文件或数据导出结果的团队。
  • 使用 OpenClaw 或类似飞书消息框架的 Agent 开发者,他们在开发中频繁遇到图片发送降级为路径文本的问题,急需一套可靠的解决方案。
  • 任何希望通过脚本化或自动化流程向飞书用户下发文本化文件(如日报、HTML 摘要、压缩包)的运维人员或产品运营人员。

使用该技能可能存在的风险

  • 性能风险:对 subprocesscurl 的调用会为每一次文件/图片上传创建一个新的进程,在高并发或批量发送场景下,进程创建开销和系统资源消耗会显著增加,效率远低于使用原生 HTTP 库实现连接复用。
  • 依赖项风险:脚本依赖运行时环境中 curl 命令可用,在某些极简 Docker 镜像或沙箱环境下可能因缺少 curl 而导致脚本执行失败。
  • 安全风险:虽然目前风险较低(A 级),但命令行凭证泄露、文档中 exec() 的不良示范等,在安全要求极高的生产环境中依然是减分项。若系统存在其他漏洞,攻击者联合利用本地进程列表信息获取凭证,可接管飞书应用权限。建议用户在使用时优先通过环境变量注入凭证,并提取脚本中的核心逻辑用 urllib 重写。

安全解读

核心用法

feishu-send-file 是专为飞书生态设计的文件传输技能,解决两大痛点场景:

1. 普通文件发送(HTML/PDF/ZIP/代码文件等):采用「上传-获取file_key-发送」标准两步流程,避免直接传filePath导致的路径文本暴露
2. 本地图片稳定发送:针对/root/myfiles/...等本地路径通过常规message/media发送后,用户在飞书仅看到路径文本而非图片本体的问题,提供独立的im/v1/images上传链路

技能提供两个Python脚本:send_file.py用于普通文件,send_image.py用于图片(支持国内版Feishu/国际版Lark切换)。

显著优点

  • 痛点精准修复:明确区分「路径回显」与「真正发送成功」的判定标准,杜绝误判
  • 双链路清晰分离:file_key(文件)与image_key(图片)两条API路径不混用
  • 依赖极轻:纯Python标准库实现,零第三方依赖,供应链风险极低
  • 凭证安全:app_id/app_secret通过参数传入,无硬编码
  • 通信加密:全链路HTTPS,仅访问飞书官方域名

潜在局限

  • subprocess调用curl:为实现multipart/form-data上传,脚本调用系统curl命令,存在理论命令注入风险(虽已做输入处理)
  • 参数验证宽松:除文件存在性检查外,open_id格式、路径遍历防护等验证不足
  • T3来源:个人开发者维护,无GitHub公开仓库,历史可追溯性弱
  • 无重试机制:网络请求未设置超时与退避重试

适合人群

  • 使用OpenClaw/Feishu插件遇到「图片发成路径文本」故障的开发者
  • 需要程序化发送飞书文件附件的自动化场景
  • 对依赖精简度有严格要求的生产环境

常规风险

| 风险项 | 等级 | 说明 |
|--------|------|------|
| 外部命令执行 | Low | subprocess调用curl,功能必需但建议迁移至原生HTTP库 |
| 输入验证不足 | Low | 缺乏路径遍历与ID格式校验 |
| 供应链攻击 | 极低 | 零第三方依赖 |
| 数据外泄 | 极低 | 仅访问官方API,TLS加密 |

feishu-send-file 内容

scripts文件夹
手动下载zip · 5.8 kB
send_file.pytext/plain
请选择文件