Feishu Send Media — Feishu 发送媒体
v1.0.2向Feishu用户或聊天发送图片、文件、音频、视频和其他媒体。用户要求通过Feishu直接消息或群聊发送、分享或传输媒体文件时使用。
运行时依赖
安装命令
点击复制技能文档
Feishu 发送媒体 直接使用消息工具向 Feishu 用户或聊天发送媒体文件(图像、文档、音频、视频)。 发送媒体 基本文件发送 使用消息工具,动作:发送,路径参数: { "action": "send", "target": "ou_xxx", // 用户 open_id 或聊天 ID "path": "/path/to/file.pdf" } 支持的类型: 图像:.png, .jpg, .jpeg, .gif, .webp 文档:.doc, .docx, .pdf, .txt, .rtf 音频:.mp3, .wav, .m4a 视频:.mp4, .mov 参数: target:用户 open_id(例如 ou_3ac66d1ad7b8c1xxxxxxxxxxxxxxs)或聊天 ID path:本地文件的绝对路径 可选 filename:覆盖显示名称 发送到群聊 使用聊天 ID 作为目标: { "action": "send", "target": "oc_xxx", // 群聊 ID "path": "/path/to/file.pdf" } 内联图像 为了在消息中内联显示图像(而不是作为附件),使用带有 base64 的 image 参数: { "action": "send", "target": "ou_xxx", "image": "data:image/png;base64,..." } 高可靠性工作流(推荐) 按照以下步骤确保最大成功率: 步骤 1:复制文件到工作空间(带有去重) # 从源路径提取文件名 filename=$(basename "/source/path/to/file.png") # 复制到工作空间(如果存在则覆盖) cp -f "/source/path/to/file.png" "~/.openclaw/workspace/${filename}" # 验证复制是否成功 if [ ! -f "~/.openclaw/workspace/${filename}" ]; then echo "ERROR: 文件复制失败" exit 1 fi 为什么覆盖(-f):确保每次都获取最新的文件副本,避免过时文件问题。 步骤 2:获取绝对路径并验证 # 获取绝对路径 abs_path=$(cd ~/.openclaw/workspace && pwd)/${filename} # 验证文件存在且可读 if [ ! -r "$abs_path" ]; then echo "ERROR: 文件不可读:$abs_path" exit 1 fi # 日志调试 echo "发送:$abs_path" 步骤 3:使用消息工具发送 { "action": "send", "target": "ou_xxx", "path": "/Users/casia/.openclaw/workspace/filename.png" } 步骤 4:验证响应 检查工具响应: Success:"messageId" 字段存在 Failure:"error" 字段存在 自动错误恢复(关键) 如果步骤 4 失败,自动尝试以下回退: 回退 1:使用工作空间路径重试一次 # 有时会出现暂时性失败,重试 cp -f "/source/path/to/file.png" "~/.openclaw/workspace/${filename}" # 重新发送 回退 2:使用 base64 发送图像(特别是 .png、.gif) # 将图像转换为 base64 base64_string=$(base64 -i "$abs_path") # 作为内联图像发送 { "action": "send", "target": "ou_xxx", "image": "data:image/png;base64,${base64_string}" } 何时使用:路径方法失败,小图像(<3MB),.png/.gif 文件 回退 3:上传到 Feishu 驱动器然后分享 { "action": "upload_file", "doc_token": "xxx", "file_path": "$abs_path" } 然后发送返回的文件 URL。 何时使用:文件 >20MB,持续路径失败 错误处理清单 错误原因 解决方案 文件未找到 错误的路径 验证源路径是否存在 权限被拒绝 文件权限问题 使用 chmod 644 在文件上 工具错误 Feishu API 问题 重试 → base64 → 驱动器 空文件 零字节文件 检查源文件在复制之前 文件太大 >20MB 使用 Feishu 驱动器 快速参考 场景 主要方法 回退 1 回退 2 小图像(<3MB) 路径 base64 - 大图像(3-20MB) 路径 base64 驱动器 文档 路径 驱动器 - 音频/视频 路径 驱动器 - 非常大的文件(>20MB) 驱动器 - - 强制规则 始终将文件复制到工作空间 - 永远不要从 /tmp、Downloads 或其他临时路径发送 始终验证复制是否成功 - 检查文件是否存在,然后再发送 始终使用绝对路径 - 消息工具中不允许使用相对路径 始终在失败时尝试回退 - 永远不要在一次尝试后放弃 始终提取 basename - 保留原始文件名,不要重命名