飞书发送
feishu-send
by axelhu
飞书文件/图片/语音发送技能。使用 curl 调用飞书 API 发送本地文件、图片、语音到飞书群或个人。触发时机:需要发送文件到飞书时。
安装
claude skill add --url github.com/openclaw/skills/tree/main/skills/axelhu/feishu-send文档
Feishu Send
飞书文件/图片/语音发送技能。
概述
OpenClaw 的 message 工具在飞书上发送图片/文件时有 bug:
- filePath 参数 → 飞书收到的是路径文本
- media 参数 + 本地路径 → 可能失败
正确方法:用 exec 工具执行 curl 调用飞书 API。
敏感信息
飞书配置信息存储在 AGENTS.md 或 MEMORY.md 中:
- APP_ID
- APP_SECRET
- 飞书群 ID
Skill 中使用占位符,运行时从上下文读取。
核心流程
通用流程(三步)
- 获取 token:从 openclaw.json 读取 appSecret,获取 tenant_access_token
- 上传文件:上传本地文件获取 file_key / image_key
- 发送消息:调用消息 API 发送
发送图片
步骤
# Step 1: 获取 token
APP_SECRET=$(python3 -c "import json; c=json.load(open('/home/axelhu/.openclaw/openclaw.json')); print(c['channels']['feishu']['accounts']['main']['appSecret'])")
TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d '{"app_id":"cli_a92389c631f81cba","app_secret":"'$APP_SECRET'"}' \
| python3 -c "import json,sys; print(json.load(sys.stdin)['tenant_access_token'])")
# Step 2: 上传图片获取 image_key
IMAGE_KEY=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/images' \
-H "Authorization: Bearer $TOKEN" \
-F "image_type=message" \
-F "image=@/path/to/image.png" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['data']['image_key'])")
# Step 3: 发送图片到群
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"receive_id":"<飞书群ID>","msg_type":"image","content":"{\"image_key\":\"'$IMAGE_KEY'\"}"}'
支持格式
- JPEG, PNG, WEBP, GIF, TIFF, BMP, ICO
发送文件
步骤
# Step 1: 获取 token(同上)
# Step 2: 上传文件获取 file_key
FILE_KEY=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/files' \
-H "Authorization: Bearer $TOKEN" \
-F "file_type=stream" \
-F "file_name=xxx.zip" \
-F "file=@/path/to/file.zip" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['data']['file_key'])")
# Step 3: 发送文件到群
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"receive_id":"<飞书群ID>","msg_type":"file","content":"{\"file_key\":\"'$FILE_KEY'\"}"}'
发送语音
步骤
# Step 1: 获取 token(同上)
# Step 2: 上传 opus 文件获取 file_key
FILE_KEY=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/files' \
-H "Authorization: Bearer $TOKEN" \
-F "file_type=opus" \
-F "file_name=xxx.opus" \
-F "file=@/path/to/audio.opus" \
| python3 -c "import json,sys; print(json.load(sys.stdin)['data']['file_key'])")
# Step 3: 发送语音(需要提供 duration 秒数)
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"receive_id":"<飞书群ID>","msg_type":"audio","content":"{\"file_key\":\"'$FILE_KEY'\",\"duration\":5}"}'
常见问题
1. image_key 获取失败
- 检查文件路径是否正确
- 检查文件格式是否支持
- 检查 token 是否过期
2. 发送失败
- 确认 receive_id 正确(群用 chat_id,个人用 open_id)
- 检查消息内容 JSON 格式是否正确
3. token 获取失败
- 确认 APP_ID 和 APP_SECRET 正确
- 确认飞书应用有 im:message 权限
触发时机
- 用户要求发送图片/文件/语音时
- 需要发送本地文件到飞书时
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
接口设计评审
by alirezarezvani
审查 REST API 设计是否符合行业规范,自动检查命名、HTTP 方法、状态码与文档覆盖,识别破坏性变更并给出设计评分,适合评审接口方案和版本迭代前把关。
✎ 做API和架构方案时,它能帮你提前揪出接口设计问题并对齐最佳实践,评审视角系统,团队协作更省心。
相关 MCP 服务
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。