feishu-send-file

📎 飞书机器人文件发送助手

通过飞书机器人发送普通文件附件,支持脚本一键发送或手动两步流程,需先上传获取file_key再发消息

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

使用说明

核心用法

本技能用于飞书机器人发送非图片/视频的普通文件(HTML、ZIP、PDF、代码文件等)。由于飞书API限制,必须采用两步流程:先调用文件上传接口获取 file_key,再使用 file_key 发送消息。

脚本方式(推荐):执行 send_file.py 脚本,传入文件路径、用户open_id、app_id和app_secret即可一键完成上传+发送。

手动方式:先获取tenant_access_token,再POST上传文件提取file_key,最后POST发送消息携带file_key。

显著优点

  • 脚本封装简化了两步流程,降低操作门槛
  • 支持所有普通文件类型(stream模式通用)
  • 明确区分图片/视频(直接用message tool)与普通文件的使用场景
  • 参数说明清晰,open_id提取规则明确

潜在缺点与局限性

  • 依赖外部Python脚本,环境需预装Python3
  • 需要手动管理app_id/app_secret,存在凭证暴露风险
  • 仅覆盖单聊场景(open_id),群聊(chat_id)需自行替换参数
  • 无错误处理、重试机制说明
  • 未提供文件大小限制、频率限制等边界信息

适合人群

  • 已部署飞书机器人的开发者/运维人员
  • 需要通过自动化流程向用户交付文件报告的场景
  • 熟悉curl命令和基本API调用的技术人员

常规风险

  • 凭证泄露:app_secret在命令行明文传递可能被历史记录保存
  • 权限越界:获取的token默认tenant级别,未限制最小权限范围
  • 文件注入:未校验上传文件内容,恶意文件可能通过机器人传播
  • 日志残留:脚本执行过程中token和file_key可能留在进程日志

安全解读

核心用法

feishu-send-file 是专为飞书生态设计的文件传输工具,解决机器人发送普通文件(非图片/视频)的特定场景。核心流程为两步式:先上传文件获取 file_key,再用该 key 发送消息。提供脚本自动化手动 API 两种执行模式。

脚本模式(推荐):一行命令完成全流程,自动处理 token 获取、文件上传和消息发送,适合 CI/CD 或定时任务集成。

手动模式:适合调试或自定义场景,需分别调用 /files 上传接口和 /messages 发送接口,需自行管理 tenant_access_token。

显著优点

  • 官方 API 保障:直接对接飞书开放平台,传输稳定,文件保留原格式
  • 零依赖设计:仅使用 Python 标准库,无第三方包,部署极简
  • 多文件类型支持:stream 模式通吃 HTML、ZIP、PDF、代码文件等
  • 区分媒体与普通文件:明确区分 media 参数(图片/视频)与本技能的使用边界

潜在缺点与局限

  • subprocess 依赖:使用系统 curl 而非原生 HTTP 库,跨平台兼容性受限(Windows 需额外配置)
  • 凭证暴露风险:app_secret 通过命令行参数传递,可能在进程列表中泄露
  • 输入验证薄弱:无文件大小限制、无 open_id 格式校验,大文件可能导致内存问题
  • T3 来源可信度:个人开发者维护,无企业级 SLA 保障
  • 无重试与日志:网络波动时易失败,排查依赖 print 输出

适合人群

  • 需通过飞书机器人发送报告/日志/代码片段的技术团队
  • 已具备飞书开放平台应用配置的运维/开发人员
  • 能接受命令行工具、无 GUI 需求的轻量用户

常规风险

| 风险类型 | 说明 |
|---------|------|
| 凭证泄露 | 命令行参数传递 app_secret,多用户服务器需注意 ps 可见性 |
| 文件隐私 | 文件内容经飞书服务器中转,敏感数据需评估合规性 |
| API 限流 | 高频调用可能触发飞书频次限制 |
| 传输依赖 | 依赖外部 curl 命令,容器环境需确保 curl 已安装 |

feishu-send-file 内容

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