问题描述
目前 batch_create_feishu_blocks 工具无法在一次调用中创建包含子内容的“容器块”(如高亮块 Callout、引用块 Quote 等)。尝试创建一个空的 Callout 块时,飞书 API 会直接报错,因为飞书强制要求容器类 Block 在创建时必须包含至少一个子节点(children)。
当前报错信息:API error: field validation failed (children: the min len is 1)
相关飞书接口:创建块
原因分析
Schema 不支持递归:
在 src/types/feishuSchema.ts 中,BlockConfigSchema 是扁平的,仅包含 blockType 和 options。缺失了类似飞书原生 API 的 children 递归字段。
BlockFactory 缺少容器支持:
在 src/services/blockFactory.ts 中,createBlock 方法仅支持 text, code, heading 等基础类型,缺少对 Callout, Quote, Grid 等容器类型的支持,且不支持组装 children 数据。
改进建议
AI给的建议,供您参考。
- 修改 Zod Schema (
src/types/feishuSchema.ts)
将 BlockConfigSchema 改为递归结构,允许传入 children
- 扩展 BlockFactory (
src/services/blockFactory.ts)
- 增加对 BlockType.CALLOUT 等容器类型的支持。
- 在构建 Block 对象时,支持处理传入的 children 数组,将其转换为飞书 API 需要的嵌套格式。
期望工作方式
能够通过一次调用完成复杂结构的创建
问题描述
目前 batch_create_feishu_blocks 工具无法在一次调用中创建包含子内容的“容器块”(如高亮块 Callout、引用块 Quote 等)。尝试创建一个空的 Callout 块时,飞书 API 会直接报错,因为飞书强制要求容器类 Block 在创建时必须包含至少一个子节点(children)。
当前报错信息:
API error: field validation failed (children: the min len is 1)相关飞书接口:创建块
原因分析
Schema不支持递归:在 src/types/feishuSchema.ts 中,BlockConfigSchema 是扁平的,仅包含 blockType 和 options。缺失了类似飞书原生 API 的 children 递归字段。
BlockFactory缺少容器支持:在 src/services/blockFactory.ts 中,createBlock 方法仅支持 text, code, heading 等基础类型,缺少对 Callout, Quote, Grid 等容器类型的支持,且不支持组装 children 数据。
改进建议
AI给的建议,供您参考。
src/types/feishuSchema.ts)将 BlockConfigSchema 改为递归结构,允许传入 children
src/services/blockFactory.ts)期望工作方式
能够通过一次调用完成复杂结构的创建