360 Secure SkillHub
360 安全技能中心

Feishu File Send

该 Skill 记录了通过宿主 message 工具向飞书发送文件的方法,支持图片、音频、文档等类型,推荐使用绝对路径并将文件置于 OpenClaw workspace 目录。文档强调使用 media/file_path/path 参数而非 message 参数,并包含创建 PDF 再发送的示例及故障排除说明。

tazio7
tazio7
热度 91.90
最近更新 2026-05-11 17:29:59
分类:协作依赖:代码执行 / 读写文件 / 第三方 API应用场景:工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add feishu-file-send
Metadata
name
feishu-file-send
description
发送文件到飞书。支持图片、音频、文档等任意文件类型。
emoji
📎

Feishu File Send Skill

通过飞书发送文件(图片、音频、文档等)。

发送方法

使用 message 工具(推荐)

# 发送图片
message(action="send", channel="feishu", media="/absolute/path/to/image.png", caption="图片描述")

# 发送文件(HTML、PDF、音频等)
message(action="send", channel="feishu", media="/absolute/path/to/file.pdf", caption="文件描述")

# 发送音频录音
message(action="send", channel="feishu", media="~/.openclaw/workspace/recording_latest.wav", caption="录音已降噪处理")

关键参数

  • action: 必须为 "send"
  • channel: 必须为 "feishu"
  • media: 文件绝对路径(推荐)
  • file_path: 文件路径(别名)
  • path: 文件路径(别名)
  • caption: 文件描述(可选)

⚠️ 重要规则

  1. 文件必须在 workspace 目录(安全策略 CVE-2026-26321)

    • 不要用 /tmp/ 路径发送
    • 先复制到 workspace 再发送
  2. 不要用 message 参数发送文件

    • 用户将无法收到!
    • 使用 media、file_path 或 path 参数
  3. 使用绝对路径

    • 推荐:~/.openclaw/workspace/filename
    • 或:/Users/wangbotao/.openclaw/workspace/filename

工作目录

  • 建议将文件复制到工作目录 ~/.openclaw/workspace/ 后发送
  • 使用绝对路径

示例

发送录音

# RecordMic.app 已自动复制到 workspace
message(action="send", channel="feishu", media="~/.openclaw/workspace/recording_latest.wav", caption="录音已降噪处理")

发送图片

message(action="send", channel="feishu", media="~/.openclaw/workspace/screenshot.png", caption="屏幕截图")

发送文档

message(action="send", channel="feishu", media="~/.openclaw/workspace/report.pdf", caption="报告")

创建并发送 PDF(完整流程)

# 1. 创建 PDF 文件(内容:12345)
# 使用 Python 创建最小 PDF
import subprocess
subprocess.run(['python3', '-c', '''
pdf_content = """%PDF-1.4
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
3 0 obj
<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R /Resources << /Font << /F1 5 0 R >> >> >>
endobj
4 0 obj
<< /Length 44 >>
stream
BT /F1 24 Tf 100 700 Td (12345) Tj ET
endstream
endobj
5 0 obj
<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>
endobj
xref
0 6
0000000000 65535 f 
0000000009 00000 n 
0000000058 00000 n 
0000000115 00000 n 
0000000266 00000 n 
0000000358 00000 n 
trailer
<< /Size 6 /Root 1 0 R >>
startxref
433
%%EOF"""
with open('/Users/wangbotao/.openclaw/workspace/test.pdf', 'w') as f:
    f.write(pdf_content)
print('Created test.pdf')
'''], cwd='/Users/wangbotao/.openclaw/workspace')

# 2. 发送 PDF
message(action="send", channel="feishu", media="/Users/wangbotao/.openclaw/workspace/test.pdf", caption="test.pdf - 内容:12345")

测试结果(2026-03-10): 成功创建并发送 test.pdf,文件大小 580 字节,messageId: om_x100b55c3299cd8a0c2c3dc260402e23

故障排除

发送失败

  • 检查文件是否在 workspace 目录
  • 不要用 /tmp/ 路径
  • 文件大小是否合理(> 1KB)
  • 检查飞书权限(im:message, drive:file)

用户收不到

  • 确认使用了 media、file_path 或 path 参数
  • 不要用 message 参数发送文件
  • 检查 channel 是否为 "feishu"

更新日志

  • 2026-03-10: 创建 skill,文档化飞书文件发送方法