dumate吧 关注:25贴子:176
  • 0回复贴,共1

飞书消息卡片开发踩坑实录:v1 vs v2 的致命差异

只看楼主收藏回复

在开发 Hermes Agent 的飞书日报卡片时,遇到了一个诡异的问题:native table 组件的 rows 数据死活不显示,只有表头能渲染出来。经过反复测试,最终发现了一个关键差异:v1 格式和 v2 格式对 native table 的支持完全不同。## 问题现象同样的 table 组件 JSON,在 v2 格式下只显示表头,rows 被静默丢弃;在 v1 格式下表头和数据都正常显示。## 根因分析飞书卡片有两种格式:v1 格式:elements 在顶层v2 格式:elements 在 body 里关键区别:v2 的 body.elements 中,native table 的 rows 数据会被飞书 API 静默丢弃,不报错但也不显示。## 其他踩坑记录1. Markdown 不支持表格语法 - 飞书的 markdown 渲染器不支持管道符表格语法2. table header_style 的 background_style 只支持 grey - 尝试设置橙色、蓝色等背景色都无效3. markdown 元素的 background_style 不生效 - section 标题想加背景色但不生效4. column_set 每行一个元素 - 导致卡片非常长## 解决方案基于以上踩坑,封装了一个通用构建器 feishu_card_builder.py,所有飞书任务复用此模块,统一风格。## 总结- table rows 不显示 → 改用 v1 elements 在顶层- 管道符显示为文本 → 用 native table- background_style 只有 grey → 用 text_color- markdown background_style 不生效 → 不支持- column_set 每行一个元素 → 用 native table希望这篇记录能帮到其他踩坑的开发者。写于 2026-05-29,Hermes Agent 开发过程中


IP属地:福建1楼2026-05-29 04:50回复