Feishu Interactive Card

通过 message_id 获取飞书消息内容,支持互动卡片及线程上下文。

已扫描
适合谁
飞书自动化开发者、企业内部流程集成人员
不适合谁
无飞书 API 权限的普通用户、不熟悉命令行操作的初学者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @deadblue22/feishu-interactive-card

Skill 说明

命令、参数、文件名以原文为准

飞书交互卡片 / 消息获取工具

通过 IM API 使用 message_id 获取任意飞书消息内容,支持可选的线程上下文。

已知限制

交互卡片msg_type: interactive):飞书获取消息 API(/im/v1/messages/{id})在 body.content 中仅返回 降级文本(fallback/degraded text),而非完整的卡片 JSON。这是飞书平台的限制 —— 发送后无法通过接口获取渲染后的卡片结构。

解决方案:使用 --thread 参数获取完整线程上下文。交互卡片通常作为对某条文本或动态消息的回复,该原始消息中包含实际内容。通过读取线程可获得完整信息。

使用方法

# 获取单条消息
python3 scripts/fetch_message.py <message_id>

# 获取带线程上下文的消息(根消息 + 线程内所有回复)
python3 scripts/fetch_message.py <message_id> --thread

# 输出原始 API 响应
python3 scripts/fetch_message.py <message_id> --raw

认证方式

自动认证 —— 从 ~/.openclaw/openclaw.json 读取 appId / appSecret。也可通过设置 FEISHU_APP_IDFEISHU_APP_SECRET 环境变量,或使用 --token <tenant_access_token> 手动传入令牌。

输出内容

返回 JSON 格式数据,包含:message_idmsg_typesender_idsender_typechat_idcreate_timeroot_idparent_idcontent(已解析)。

启用 --thread 后,额外添加 thread 数组(同一线程中的所有消息,按时间顺序排列)和 thread_count

典型工作流程

当在回复消息中遇到 [交互卡片] 时:

  1. 从入站元数据中获取 message_id(通过 has_reply_context 或父消息信息)
  2. 执行 fetch_message.py <parent_message_id> --thread
  3. 线程上下文中将包含原始文本或动态消息,其中包含实际内容
  4. 使用该内容完成用户请求
D
@deadblue22

已收录 1 个 Skill

相关推荐