Feishu Image Sender 飞书发图指南
by @inuyashayang
Feishu IM messaging operations: send messages, images, files to users and groups via Bot API. Activate when user mentions: 飞书发图、发送图片、飞书消息、im:resource、image_k...
clawhub install inuyasha-feishu-img📖 About This Skill
name: feishu-im description: | Feishu IM messaging operations: send messages, images, files to users and groups via Bot API. Activate when user mentions: 飞书发图、发送图片、飞书消息、im:resource、image_key、飞书附件、飞书机器人发消息。
Feishu IM Tool
Use the message tool with channel=feishu for all IM operations.
Send Text Message
message(action=send, channel=feishu, target=, message="text")
Send Image (CORRECT method)
Always use filePath or media, never paste a raw path in message text.
message(action=send, channel=feishu, target=, filePath="/absolute/path/to/image.jpg")
Or with caption:
message(action=send, channel=feishu, target=, media="/path/to/image.jpg", message="caption text")
The tool handles the two-step upload internally: 1. POST /im/v1/images → get image_key 2. POST /im/v1/messages with image_key
Common Failure Modes — Images Show as Path/Link
See references/image-sending-pitfalls.md for full diagnosis.
TL;DR root causes:
message tool → plain text, no uploadMEDIA:/absolute/path → security filter strips itimage_type wrong during upload (must be message, not avatar)tenant_access_token expired (TTL ~2h) → upload silently fails, key is emptyPermissions Required
| Scope | Purpose |
|-------|---------|
| im:resource | Upload image/file to IM, get file_key / image_key |
| im:message | Send messages with media |
| im:message:send_as_bot | Send as bot identity |
All three are currently granted on this installation.
Bot Type Comparison
| Feature | Webhook Custom Bot | Bot App (自建应用) | |---------|-------------------|-------------------| | Send text | ✅ | ✅ | | Send image | ⚠️ base64 only (不推荐) | ✅ via image_key | | access_token | ❌ 无 | ✅ tenant_access_token | | Upload API | ❌ 不支持 | ✅ /im/v1/images |
OpenClaw uses Bot App — always use the message tool, not raw Webhook POST.
Token Refresh
tenant_access_token expires in ~2 hours. If uploads silently fail:
99991663 = image_key invalid99991400 = token expiredOpenClaw refreshes tokens automatically on each API call. If you see these errors, check Gateway logs.
References
references/image-sending-pitfalls.md — detailed failure mode diagnosis