飞书发送图片总失败?可能是插件没选对
飞书发送图片总失败?可能是插件没选对
总结日期: 2026-02-27
前言
最近在调试 OpenClaw 飞书插件时,遇到了一个棘手的问题:无论怎么尝试,都无法成功发送内联图片到飞书群聊。尝试了各种参数配置,結果都是失败或者只能以附件形式发送。
经过一番深入研究,终于找到了问题根源。今天把这段踩坑经历分享出来,希望对大家有所帮助。
问题回顾
我尝试了以下几种方式发送图片:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
可以说能踩的坑都踩了一遍。
三个误导点
误导一:工具参数就是最终行为
最初我以为,只要在 message 工具中配置了 buffer 参数,就能直接发送 Base64 图片数据。
实际上,OpenClaw 官方 @openclaw/feishu 插件的 outbound.ts 根本没有暴露 buffer 参数。也就是说即使用户指定了 buffer,插件也不会处理这个参数。
误导二:filePath 发送的就是图片
我曾以为使用 filePath 上传了图片文件,就会直接显示在聊天中。
实际上,filePath 方式调用的是 sendFileFeishu,消息类型是 msg_type: "file"。在飞书中,这会被当作附件处理,而不是内联图片消息。
误导三:msgType 参数有效
我天真地以为设置 msgType: "image" 就能发送图片消息。
实际上,这个参数被插件的处理逻辑直接忽略了,最终仍然走文件上传流程。
为什么最终成功了
转折点在于使用了第三方插件 @m1heng-clawd/feishu 的专用脚本。
这个插件的解决方案是:
-
1. 手动调用飞书 SDK -
• 第一步:调用 client.im.image.create()上传图片,获取image_key -
• 第二步:调用 client.im.message.create()发送图片消息,明确指定msg_type: "image" -
2. 关键区别 -
• 官方插件:自动化处理,但功能有局限 -
• 专用脚本:手动控制每一步,精确指定消息类型
核心教训
-
1. 工具参数 ≠ 实际行为:工具声明的参数不一定被插件正确处理,要以实际测试结果为准 -
2. 附件 ≠ 内联图片:filePath 方式发送的是文件附件,不会像微信/飞书图片那样直接显示在对话中 -
3. 插件选择很重要:官方插件功能可能有局限,社区插件可能提供更完善的能力
正确流程
如果你需要通过 OpenClaw 发送内联图片到飞书,可以参考以下流程:
用户请求发图片 ↓检查插件类型 ↓├─ 官方 @openclaw/feishu → 只能发附件└─ @m1heng-clawd/feishu → 可发内联图片 ↓使用专用脚本或直接调用 SDK ↓1. uploadImage → 获取 image_key2. sendMessage msg_type:image → 发送内联图片
结语
这次调试经历让我深刻体会到:在使用自动化工具时,官方文档和实际行为之间可能存在差距。遇到问题时,除了查阅文档,亲自动手测试才是最快的解决方式。
希望这篇文章能帮助大家避免同样的坑。如果有其他问题,欢迎在评论区交流!
夜雨聆风
