返回顶部
s

send-file发送文件

发送文件到消息平台。触发词:发送文件、发送文档、发送截图、传文件、发文件。支持飞书等平台,内容优先级:生成的文档 > 本地文件 > 截图。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.1
安全检测
已通过
392
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

send-file

Send File

概述

将文件发送到消息平台(飞书、Telegram、Discord 等)。

内容来源优先级(用户未指定时):

  1. 1. 🥇 生成的文档 - 刚刚由代码/工具生成的文件(报告、导出数据等)
  2. 🥈 本地文件 - 用户机器上已存在的文件
  3. 🥉 截图 - 屏幕截图或图片

配置(必须)

使用前需要配置飞书应用凭证:

bash

临时配置(当前终端)


export FEISHUAPPID=cli_xxx
export FEISHUAPPSECRET=xxx

永久配置(添加到 ~/.zshrc 或 ~/.bashrc)

echo export FEISHUAPPID=cli_xxx >> ~/.zshrc echo export FEISHUAPPSECRET=xxx >> ~/.zshrc source ~/.zshrc

获取飞书应用凭证:

  1. 1. 访问 飞书开放平台
  2. 创建或选择应用
  3. 在「凭证与基础信息」中获取 App ID 和 App Secret
  4. 确保应用有 im:message 和 im:resource 权限

快速开始

用户请求发送文件时:

用户: 把这个文件发到飞书
用户: 发送 /path/to/file.pdf 给我
用户: 把刚才生成的报告发给我

重要:飞书文件发送必须用 Python 脚本

⚠️ OpenClaw 的 message 工具无法直接发送本地文件(只能发链接)。

正确做法:直接执行 Python 脚本

bash
python ~/.openclaw/skills/send-file/scripts/sendfeishufile.py path> id>

执行时机:

  • - 用户说发文件、发送xxx、把xxx发给我时
  • 当前在飞书对话中,自动推断 open_id
  • 直接用 exec 调用脚本,不要用 message 工具的 filePath 参数

平台支持

平台状态说明
飞书✅ 支持使用 message 工具,支持多种文件类型
Telegram
✅ 支持 | 使用 message 工具 | | Discord | ✅ 支持 | 使用 message 工具 | | Signal | ✅ 支持 | 使用 message 工具 | | 微信 | ⏳ 计划中 | 暂未原生支持 | | QQ | ⏳ 计划中 | 暂未原生支持 |

工作流程

步骤 1:确定文件来源(按优先级)

当用户说发文件但未明确指定时,按优先级判断:

优先 1:生成的文档

  • - 刚刚由工具生成的文件(如报告、代码、导出数据)
  • workspace 目录下的新文件
  • 直接使用该路径

优先 2:本地文件

  • - 用户明确指定路径:发送 /path/to/file.pdf
  • 模糊路径:发送桌面的那个pdf → 需要搜索或确认
  • 使用 read 确认文件存在

优先 3:截图

  • - 用户明确要求截图
  • 需要先截图再发送
  • macOS:使用 screencapture 命令

步骤 2:确定目标平台和接收者

当前对话自动推断

  • - 如果用户在飞书对话中 → 发送到当前对话
  • 无需额外指定

明确指定

  • - 发到飞书群xxx
  • 发到 Telegram
  • 使用 message 工具的 channel 和 target 参数

步骤 3:发送文件

重要:飞书文件发送需要两步

飞书不能直接发送本地文件路径,必须先上传获取 file_key:

步骤 3.1:上传文件到飞书
python

1. 获取 tenantaccesstoken


2. 调用 POST /open-apis/im/v1/files 上传文件


3. 获取返回的 file_key

步骤 3.2:发送文件消息
python

调用 POST /open-apis/im/v1/messages?receiveidtype=open_id


msg_type: file


content: {filekey: key>}

Python 示例代码:
python
import requests
import json

1. 获取 token

token_resp = requests.post( https://open.feishu.cn/open-apis/auth/v3/tenantaccesstoken/internal, json={appid: APPID, appsecret: APPSECRET} ) token = tokenresp.json()[tenantaccess_token]

2. 上传文件

with open(file_path, rb) as f: upload_resp = requests.post( https://open.feishu.cn/open-apis/im/v1/files, headers={Authorization: fBearer {token}}, files={file: (filename, f, mime_type)}, data={filetype: filetype, file_name: filename} ) filekey = uploadresp.json()[data][file_key]

3. 发送文件消息

requests.post( https://open.feishu.cn/open-apis/im/v1/messages?receiveidtype=open_id, headers={Authorization: fBearer {token}, Content-Type: application/json}, json={ receiveid: openid, msg_type: file, content: json.dumps({filekey: filekey}) } )

filetype 对照表:

文件类型filetype
Excel (.xlsx/.xls)xlsx
Word (.docx/.doc)
doc |
| PDF | pdf |
| 图片 | image |
| 视频 | video |
| 音频 | audio |
| 其他 | stream |

文件类型支持

飞书支持的文件类型

类型扩展名大小限制
文档pdf, doc, docx, xls, xlsx, ppt, pptx30MB
图片
jpg, jpeg, png, gif, webp | 20MB | | 音频 | mp3, wav, m4a, aac | 30MB | | 视频 | mp4, mov, avi | 50MB | | 压缩包 | zip, rar, 7z | 30MB |

示例

示例 1:发送刚生成的文件

用户:把刚才生成的报告发到飞书

  1. 1. 确认生成的文件路径(通常是 workspace 目录)
  2. 使用 message 工具发送

示例 2:发送本地文件

用户:发送 /Users/wlong/Desktop/report.pdf 给我

  1. 1. 确认文件存在
  2. 使用 message 工具发送,target 留空(当前对话)

示例 3:截图并发送

用户:截个屏发给我

  1. 1. 使用 screencapture 截图
  2. 保存到临时文件
  3. 使用 message 工具发送

脚本

scripts/sendfeishufile.py

飞书文件发送脚本,自动处理上传和发送流程。

用法:
bash
python ~/.openclaw/skills/send-file/scripts/sendfeishufile.py path> id>

示例:
bash

发送文件给用户


python ~/.openclaw/skills/send-file/scripts/sendfeishufile.py \
/Users/wlong/Downloads/report.xlsx \
ou_26b058ca29943e674a9b0c9039329897

环境变量:

  • - FEISHUAPPID:飞书应用 ID(必须配置
  • FEISHUAPPSECRET:飞书应用密钥(必须配置

scripts/send_file.sh

通用文件发送辅助脚本(用于文件检查和验证)。

注意事项

  • - 大文件发送可能需要时间,告知用户等待
  • 飞书有文件大小限制,超大文件需要分片或压缩
  • 发送失败时检查文件格式和大小
  • 微信/QQ 支持待后续扩展

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 send-file-1776269223 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 send-file-1776269223 技能

通过命令行安装

skillhub install send-file-1776269223

下载

⬇ 下载 send-file v1.0.1(免费)

文件大小: 6.42 KB | 发布时间: 2026-4-17 16:03

v1.0.1 最新 2026-4-17 16:03
修复:统一使用 stream 类型上传文件,避免飞书 API 对图片等类型的限制

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large