🤖
Feishu File
飞书文件发送技能。支持发送各类文件到飞书聊天,包括文档、图片、压缩包等,自动识别文件类型并处理上传。
安全通过
💬Prompt
技能说明
name: feishu-file description: 飞书文件发送技能。支持发送各类文件到飞书聊天,包括文档、图片、压缩包等,自动识别文件类型并处理上传。 metadata: { "openclaw": { "requires": { "bins": ["curl", "jq", "file"], "env": ["FEISHU_APP_ID", "FEISHU_APP_SECRET"] } } }
飞书文件发送技能
将本地文件发送到飞书聊天,支持多种文件类型,自动识别并正确处理。
功能特性
- ✅ 支持多种文件类型(文档、图片、压缩包等)
- ✅ 自动识别文件 MIME 类型
- ✅ 文件大小检查
- ✅ 上传到飞书服务器
- ✅ 发送文件消息
- ✅ 错误处理和重试
前置要求
环境变量
# 飞书配置
export FEISHU_APP_ID="cli_xxx" # 飞书应用 ID
export FEISHU_APP_SECRET="your_secret" # 飞书应用密钥
export FEISHU_RECEIVER="ou_xxx" # 接收者 Open ID(可选,默认从上下文获取)
必需工具
curl- HTTP 请求jq- JSON 处理file- 文件类型识别
使用方法
基本用法
# 发送文件
bash scripts/send_file.sh /path/to/file.pdf
# 发送文件到指定接收者
bash scripts/send_file.sh /path/to/file.pdf ou_xxxxx
支持的文件类型
| 类型 | 扩展名 | file_type | 最大大小 |
|---|---|---|---|
| 30 MB | |||
| Word | .doc, .docx | doc, docx | 30 MB |
| Excel | .xls, .xlsx | xls, xlsx | 30 MB |
| PowerPoint | .ppt, .pptx | ppt, pptx | 30 MB |
| 图片 | .jpg, .jpeg, .png, .gif, .bmp, .webp | image | 20 MB |
| 音频 | .mp3, .wav, .aac, .ogg, .m4a, .amr, .flac, .wma | audio | 30 MB |
| 视频 | .mp4, .mov, .avi, .mkv, .flv, .wmv, .webm, .m4v | video | 50 MB |
| 压缩包 | .zip, .rar, .7z, .tar, .gz | stream | 30 MB |
| 文本 | .txt, .md, .json, .xml, .csv | stream | 30 MB |
| 其他 | 其他文件类型 | stream | 30 MB |
注意: opus 格式是飞书音频消息专用格式,不作为文件附件处理。如需发送语音消息,请使用
feishu-voice技能。
脚本说明
send_file.sh
主脚本,完整的文件发送流程。
用法:
bash scripts/send_file.sh <文件路径> [接收者ID]
参数:
文件路径(必需): 要发送的文件路径接收者ID(可选): 接收者 Open ID(默认使用环境变量 FEISHU_RECEIVER)
环境变量:
FEISHU_APP_ID: 飞书应用 IDFEISHU_APP_SECRET: 飞书应用密钥FEISHU_RECEIVER: 接收者 Open ID(可选)
流程说明
- 获取 Access Token: 使用 App ID 和 Secret 获取访问令牌
- 识别文件类型: 根据文件扩展名或 MIME 类型确定 file_type
- 检查文件大小: 确保不超过飞书限制
- 上传文件: 上传到飞书服务器,获取 file_key
- 发送消息: 发送文件消息到指定接收者
技术细节
文件大小限制
| 文件类型 | 大小限制 |
|---|---|
| 图片 | 20 MB |
| 音频 | 30 MB |
| 视频 | 50 MB |
| 其他文件(PDF、Office、压缩包等) | 30 MB |
file_type 参数
上传文件时需要指定 file_type 参数:
image: 图片文件audio: 音频文件video: 视频文件pdf: PDF 文件doc,docx: Word 文档xls,xlsx: Excel 文档ppt,pptx: PowerPoint 文档stream: 其他文件(压缩包、文本等)
API 端点
| 端点 | 用途 |
|---|---|
/auth/v3/tenant_access_token/internal | 获取访问令牌 |
/im/v1/files | 上传文件 |
/im/v1/messages | 发送消息 |
消息格式
发送文件消息的 JSON 格式:
{
"msg_type": "file",
"content": "{\"file_key\": \"file_v2_xxx\"}"
}
故障排查
文件上传失败
问题: 文件上传返回错误
可能原因:
- 文件大小超限
- 文件类型不支持
- 网络问题
解决:
# 检查文件大小
ls -lh /path/to/file
# 检查文件类型
file /path/to/file
权限错误
问题: 上传时返回权限错误
解决: 确保飞书应用有以下权限:
im:messageim:message:send_as_botim:file
接收者不存在
问题: 发送消息时返回接收者不存在
解决: 确认接收者 ID 正确:
- Open ID:
ou_xxx - Chat ID:
oc_xxx
完整示例
# 设置环境变量
export FEISHU_APP_ID="your_app_id_here"
export FEISHU_APP_SECRET="your_app_secret_here"
export FEISHU_RECEIVER="ou_xxxxx"
# 发送 PDF 文件
bash /root/.openclaw/workspace/skills/feishu-file/scripts/send_file.sh \
/path/to/document.pdf
# 发送到指定接收者
bash /root/.openclaw/workspace/skills/feishu-file/scripts/send_file.sh \
/path/to/report.xlsx ou_yyyyy
注意事项
- 文件路径: 支持绝对路径和相对路径
- 文件名: 建议使用英文文件名,避免特殊字符
- 大小限制: 超过限制的文件会返回错误
- 网络问题: 上传大文件时可能需要较长时间
- 文件清理: 本地文件不会自动删除
相关技能
feishu-voice: 发送语音消息feishu-doc: 飞书文档操作feishu-drive: 飞书云盘操作
如何使用「Feishu File」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「Feishu File」技能完成任务
- 结果即时呈现,支持继续对话优化