Install
openclaw skills install @thcjp/feishu-card-builder发送支持Markdown、按钮、图片和多种AI人格化样式的富交互协作平台卡片,向用户或群组推送消息和通知。
openclaw skills install @thcjp/feishu-card-builder功能说明: 本技能涵盖 中文交互、化工作流场景 等核心能力。
功能说明: 本技能涵盖 营销文案 等核心能力。
向协作平台用户或群组发送富交互卡片。支持Markdown(代码块、表格)、标题、彩色头部、按钮组件、图片嵌入和多种AI人格化消息样式.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 协作平台卡片处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
feishu-common 依赖../feishu-common/index.js 进行Token和API认证| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
通过 node skills/feishu-card/send.js --target "ou_..." --text "Hello World" 发送简单文本卡片。--target 参数接受用户Open ID(ou_ 前缀)或群组Chat ID(oc_ 前缀)。适用于不含特殊字符的简单消息推送场景.
通过 --text-file 参数从文件读取Markdown内容发送复杂卡片。支持代码块、表格、列表等完整Markdown语法。关键:为防止shell转义问题(如反引号被吞),始终先将内容写入临时文件,再用 --text-file "temp/msg.md" 发送。适用于发送代码片段、日志和格式化报告。- 验证返回数据的完整性和格式正确性
通过 node skills/feishu-card/send_safe.js 包装器安全发送原始文本。自动处理临时文件创建和清理,避免shell转义问题。支持 --text 直接传入含反引号和Markdown的内容,配合 --title 设置卡片标题。适用于自动化流程中的安全消息发送。- 验证返回数据的完整性和格式正确性
通过 --title <string> 设置卡片头部标题,--color <string> 设置头部颜色。支持6种颜色:blue(默认)、red、orange、green、purple、grey。适用于按消息类型或紧急程度区分卡片视觉样式.
通过 --button-text <string> 设置底部操作按钮文本,--button-url <url> 设置按钮跳转链接。卡片底部渲染可点击按钮,点击后跳转到指定URL。适用于消息内嵌操作入口,如"查看详情"、"立即处理"等交互场景.
通过 --image-path <path> 上传本地图片并嵌入到卡片中。支持常见图片格式(PNG/JPG/GIF等)。图片先上传到协作平台服务器获取image_key,再嵌入到卡片内容中渲染。适用于发送截图、图表和视觉内容。- 验证返回数据的完整性和格式正确性
通过 node skills/feishu-card/send_persona.js --target "ou_..." --persona "d-guide" --text "Critical error detected." 发送带主题样式的人格化消息。自动添加匹配的头部颜色、格式前缀和风格化后缀。适用于AI助手不同角色的消息输出场景。- 验证返回数据的完整性和格式正确性
支持4种预设人格:d-guide(红色警告头部,粗体/代码前缀,讽刺后缀)、green-tea(胭脂红头部,柔软可爱风格)、mad-dog(灰色头部,原始运行时错误风格)、default(标准蓝色头部)。通过 --persona <type> 参数选择,--text 或 --text-file 提供内容。适用于不同场景和语气的消息表达.
# 将Markdown内容写入临时文件
write temp/msg.md "# 周报\n\n| 指标 | 数值 |\n|------|------|\n| 任务完成 | 15 |\n| 待处理 | 3 |\n\n```js\nconsole.log('done');\n```"
# ...
# 发送带标题、颜色和按钮的卡片
node skills/feishu-card/send.js \
--target "ou_abc123def456" \
--text-file "temp/msg.md" \
--title "本周工作周报" \
--color green \
--button-text "查看完整报告" \
--button-url "https://reports.example.com/weekly"
result = "ready"
# 使用d-guide人格发送严重错误告警
node skills/feishu-card/send_persona.js \
--target "oc_group123456" \
--persona "d-guide" \
--text "服务API响应延迟超过5000ms,已触发自动降级。当前错误率: 12.3%"
# ...
# 使用green-tea人格发送日常提醒
--target "ou_xyz789abc" \
--persona "green-tea" \
--text "今天的代码评审会议15分钟后开始哦~"
先将Markdown内容写入临时文件(如 temp/msg.md),再使用 --text-file "temp/msg.md" 参数发送。不要直接在 --text 参数中传含反引号的代码块,Shell会将反引号解释为命令替换导致内容丢失.
Shell将反引号(`)解释为命令替换,导致代码块标记被吞掉。解决方案:使用 --text-file 从文件读取内容,或使用 send_safe.js 包装器自动处理临时文件创建和转义.
使用 --image-path <path> 参数指定本地图片路径。图片会先上传到协作平台服务器获取image_key,再嵌入卡片渲染。支持PNG、JPG、GIF等常见格式。确保文件路径正确且有读取权限.
支持4种预设人格:d-guide(红色警告头部,粗体前缀,讽刺后缀)、green-tea(胭脂红头部,可爱风格)、mad-dog(灰色头部,运行时错误风格)、default(标准蓝色头部)。通过 --persona <type> 参数选择,使用 send_persona.js 脚本发送.
Open ID(ou_ 前缀)标识单个用户,消息发送到该用户的私聊。Group Chat ID(oc_ 前缀)标识群组,消息发送到群聊中所有成员。通过 --target 参数指定,两种ID均可用于所有发送方式.
使用 --color <string> 参数设置卡片头部颜色。不同颜色适用于不同场景:red 用于告警,green 用于成功,orange 用于警告,grey 用于普通通知.
--text-file 或 send_safe.jsfeishu-common 进行Token认证,需提前配置{
"success": true,
"data": {
"result": "协作平台卡片处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "feishu-card"
}
},
"execution_log": [
"解析输入参数",
"执行核心处理",
"格式化输出结果"
],
"error": null
}
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 发送简单文本卡片 | 1分钟 | 30秒 | 30秒 | 5% |
| 发送复杂Markdown卡片 | 5分钟 | 2分钟 | 3分钟 | 10% |
| 图片嵌入到卡片 | 3分钟 | 1分钟 | 2分钟 | 8% |
| 设置卡片标题和颜色 | 1分钟 | 30秒 | 30秒 | 5% |
| 添加按钮组件 | 2分钟 | 1分钟 | 1分钟 | 7% |
| 发送人格化消息 | 3分钟 | 1分钟 | 2分钟 | 8% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 易用性 | 高 | 低 | 中 | 高 |
| 功能丰富性 | 高 | 低 | 中 | 高 |
| 自动化程度 | 高 | 低 | 中 | 高 |
| 成本 | 低 | 中 | 高 | 高 |
| 适应场景 | 多样化 | 单一 | 单一 | 单一 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 重复性工作 | 重复发送相同信息,效率低 | 效率低,易出错 | 自动化发送 | 时间节约30% |
| 信息格式不统一 | 发送的信息格式不规范,影响阅读 | 阅读体验差 | 规范格式,统一发送 | 阅读体验提升20% |
| 信息传达不及时 | 信息传达延迟,影响决策 | 决策延迟 | 及时发送 | 决策效率提升15% |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 发送失败 | 网络连接问题 | 检查网络连接,重试发送 | 重新发送,确保网络连接正常 |
| 卡片格式错误 | Markdown语法错误 | 检查Markdown语法,修正错误 | 修正Markdown语法,重新发送 |
| 图片无法显示 | 图片格式不支持或损坏 | 检查图片格式,重新上传图片 | 更换图片格式,重新上传图片 |
| 按钮无法点击 | 按钮链接错误 | 检查按钮链接,修正错误 | 修正按钮链接,重新发送卡片 |
| 送达状态未知 | 消息未被接收 | 检查消息接收者状态,确认消息发送 | 确认接收者状态,重新发送消息 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
A1: 发送富交互协作平台卡片,支持Markdown、标题、按钮、图片和人格化消息。向协作平台用户或群组发送富交互卡片。支持Markdown(代码块、表格)、标题、彩色。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
针对协作平台卡片使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |