协作平台卡片

发送支持Markdown、按钮、图片和多种AI人格化样式的富交互协作平台卡片,向用户或群组推送消息和通知。

天轰穿

@thcjp

Install

$ openclaw skills install @thcjp/feishu-card-builder

功能说明: 本技能涵盖 中文交互、化工作流场景 等核心能力。

功能说明: 本技能涵盖 营销文案 等核心能力。

协作平台卡片

向协作平台用户或群组发送富交互卡片。支持Markdown(代码块、表格)、标题、彩色头部、按钮组件、图片嵌入和多种AI人格化消息样式.

输入规范

参数名类型必填说明
inputstring协作平台卡片处理的输入数据或指令
optionsobject附加配置选项,如模式选择、格式偏好等
callback_urlstring异步处理完成后的回调通知URL

前置依赖

  • 需先安装 feishu-common 依赖
  • 本skill依赖 ../feishu-common/index.js 进行Token和API认证

前置条件

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Windows / macOS / Linux

依赖项

依赖项类型是否必需获取方式
LLM APIAPI必需由Agent内置LLM提供

API Key 配置

需要配置对应API Key,详见上文环境配置章节

可用性分类

  • 分类: MD+EXEC()

API Key配置方式:

export API_KEY="${API_KEY:?请设置环境变量}"

配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.

能力矩阵

1. 简单文本卡片

通过 node skills/feishu-card/send.js --target "ou_..." --text "Hello World" 发送简单文本卡片。--target 参数接受用户Open ID(ou_ 前缀)或群组Chat ID(oc_ 前缀)。适用于不含特殊字符的简单消息推送场景.

2. Markdown复杂卡片

通过 --text-file 参数从文件读取Markdown内容发送复杂卡片。支持代码块、表格、列表等完整Markdown语法。关键:为防止shell转义问题(如反引号被吞),始终先将内容写入临时文件,再用 --text-file "temp/msg.md" 发送。适用于发送代码片段、日志和格式化报告。- 验证返回数据的完整性和格式正确性

3. 安全发送

通过 node skills/feishu-card/send_safe.js 包装器安全发送原始文本。自动处理临时文件创建和清理,避免shell转义问题。支持 --text 直接传入含反引号和Markdown的内容,配合 --title 设置卡片标题。适用于自动化流程中的安全消息发送。- 验证返回数据的完整性和格式正确性

4. 卡片标题和颜色

通过 --title <string> 设置卡片头部标题,--color <string> 设置头部颜色。支持6种颜色:blue(默认)、redorangegreenpurplegrey。适用于按消息类型或紧急程度区分卡片视觉样式.

5. 按钮组件

通过 --button-text <string> 设置底部操作按钮文本,--button-url <url> 设置按钮跳转链接。卡片底部渲染可点击按钮,点击后跳转到指定URL。适用于消息内嵌操作入口,如"查看详情"、"立即处理"等交互场景.

6. 图片嵌入

通过 --image-path <path> 上传本地图片并嵌入到卡片中。支持常见图片格式(PNG/JPG/GIF等)。图片先上传到协作平台服务器获取image_key,再嵌入到卡片内容中渲染。适用于发送截图、图表和视觉内容。- 验证返回数据的完整性和格式正确性

7. 人格化消息

通过 node skills/feishu-card/send_persona.js --target "ou_..." --persona "d-guide" --text "Critical error detected." 发送带主题样式的人格化消息。自动添加匹配的头部颜色、格式前缀和风格化后缀。适用于AI助手不同角色的消息输出场景。- 验证返回数据的完整性和格式正确性

8. 多种人格样式

支持4种预设人格:d-guide(红色警告头部,粗体/代码前缀,讽刺后缀)、green-tea(胭脂红头部,柔软可爱风格)、mad-dog(灰色头部,原始运行时错误风格)、default(标准蓝色头部)。通过 --persona <type> 参数选择,--text--text-file 提供内容。适用于不同场景和语气的消息表达.

使用范例

示例1:发送带按钮的Markdown报告卡片

# 将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分钟后开始哦~"

热门问题

Q1: 如何发送含代码块的Markdown内容?

先将Markdown内容写入临时文件(如 temp/msg.md),再使用 --text-file "temp/msg.md" 参数发送。不要直接在 --text 参数中传含反引号的代码块,Shell会将反引号解释为命令替换导致内容丢失.

Q2: 为什么反引号消失了?

Shell将反引号(`)解释为命令替换,导致代码块标记被吞掉。解决方案:使用 --text-file 从文件读取内容,或使用 send_safe.js 包装器自动处理临时文件创建和转义.

Q3: 如何发送图片?

使用 --image-path <path> 参数指定本地图片路径。图片会先上传到协作平台服务器获取image_key,再嵌入卡片渲染。支持PNG、JPG、GIF等常见格式。确保文件路径正确且有读取权限.

Q4: 支持哪些人格类型?

支持4种预设人格:d-guide(红色警告头部,粗体前缀,讽刺后缀)、green-tea(胭脂红头部,可爱风格)、mad-dog(灰色头部,运行时错误风格)、default(标准蓝色头部)。通过 --persona <type> 参数选择,使用 send_persona.js 脚本发送.

Q5: Open ID和Group Chat ID有什么区别?

Open ID(ou_ 前缀)标识单个用户,消息发送到该用户的私聊。Group Chat ID(oc_ 前缀)标识群组,消息发送到群聊中所有成员。通过 --target 参数指定,两种ID均可用于所有发送方式.

Q6: 如何设置卡片颜色?

使用 --color <string> 参数设置卡片头部颜色。不同颜色适用于不同场景:red 用于告警,green 用于成功,orange 用于警告,grey 用于普通通知.

能力边界

  • 含特殊字符(反引号、$等)的内容必须使用 --text-filesend_safe.js
  • 依赖 feishu-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语法,重新发送
图片无法显示图片格式不支持或损坏检查图片格式,重新上传图片更换图片格式,重新上传图片
按钮无法点击按钮链接错误检查按钮链接,修正错误修正按钮链接,重新发送卡片
送达状态未知消息未被接收检查消息接收者状态,确认消息发送确认接收者状态,重新发送消息

安全规范

  1. [与「协作平台卡片」相关的安全注意事项]
    • 确保API Key安全,避免泄露。
    • 限制技能的使用权限,仅授权给信任的用户。
    • 对敏感信息进行加密处理,防止信息泄露。
    • 监控技能使用情况,及时发现异常行为。
    • 定期更新依赖项,确保安全性。
    • 限制技能的调用频率,防止资源滥用。
    • 在技能配置中设置合理的超时时间,避免长时间占用资源。

安全风险防范

风险项等级防护措施验证方法
API密钥泄露通过环境变量配置,禁止硬编码定期检查代码和配置文件
命令执行风险仅执行白名单命令,避免拼接用户输入使用沙箱环境测试
网络通信安全使用HTTPS协议,验证SSL证书定期检查证书有效期
敏感数据暴露输出结果中不包含密钥、令牌等敏感信息日志脱敏审查
未授权访问限制访问权限,实施认证机制定期审计访问日志

用户常见咨询

Q1: 协作平台卡片支持哪些输入格式?

A1: 发送富交互协作平台卡片,支持Markdown、标题、按钮、图片和人格化消息。向协作平台用户或群组发送富交互卡片。支持Markdown(代码块、表格)、标题、彩色。支持文本指令和结构化参数输入,具体格式参考使用流程章节。

Q2: 需要配置API Key吗?

A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。

Q3: 命令行执行失败怎么办?

A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。

异常处理指引

针对协作平台卡片使用中可能遇到的常见问题,提供以下排查方案:

错误类型原因分析解决方案
API认证失败(401)API密钥错误或过期检查密钥配置,重新生成token
接口限流(429)请求频率超出限制降低调用频率,启用重试退避策略
响应超时(504)网络延迟或服务端负载过高增加超时阈值,检查网络连接
文件不存在路径错误或文件未创建检查路径拼写,确认文件已生成
文件格式不支持扩展名不在支持列表中转换为支持的格式后重试
权限不足当前用户无读写权限检查文件权限,以管理员身份运行
命令执行失败参数错误或环境依赖缺失检查命令语法,确认依赖已安装
进程超时命令执行时间过长增加超时设置,优化命令参数
网络连接失败DNS解析失败或防火墙拦截检查网络配置,确认代理设置

协作平台卡片通用排查步骤

  1. 检查输入参数: 确认所有必填参数已提供且格式正确
  2. 查看日志输出: 定位具体错误行和异常类型
  3. 验证环境配置: 确认依赖库版本和运行环境满足要求
  4. 逐步调试: 缩小问题范围,隔离故障模块

操作入门

  1. 配置API密钥: 在环境变量中设置对应的API Key
  2. 初始化连接: 使用提供的凭证建立API连接
  3. 调用接口: 传入必要参数执行API调用
  4. 准备文件: 确认文件路径正确且格式受支持
  5. 执行处理: 调用对应的处理函数
  6. 查看结果: 检查输出文件或返回数据
  7. 检查环境: 确认运行时和依赖已安装
  8. 执行命令: 使用正确的参数格式执行
  9. 查看输出: 检查命令输出和退出码

前置条件

  • 已安装所需运行环境(参考依赖说明)
  • 已获取必要的API密钥或访问凭证(如适用)
  • 输入数据已准备就绪

使用场景

  • 自动化处理: 结合定时任务或CI/CD管道,实现批量自动化处理
  • 数据同步: 通过API实现跨平台数据同步和状态更新
  • 智能分析: 结合大模型实现内容理解和智能决策
  • 数据提取: 从非结构化文件中提取关键信息并结构化输出
  • 运维自动化: 自动执行系统命令并收集结果
  • 数据管道: 构建ETL流程,实现数据自动化流转

Top skills in this category