Skip to content

feat/fix: batch_create_feishu_blocks 支持嵌套结构以解决容器块(Callout等)创建报错问题 #42

@leeeezx

Description

@leeeezx

问题描述

目前 batch_create_feishu_blocks 工具无法在一次调用中创建包含子内容的“容器块”(如高亮块 Callout、引用块 Quote 等)。尝试创建一个空的 Callout 块时,飞书 API 会直接报错,因为飞书强制要求容器类 Block 在创建时必须包含至少一个子节点(children)。

当前报错信息API error: field validation failed (children: the min len is 1)

Image

相关飞书接口:创建块

原因分析

  1. Schema 不支持递归:
    在 src/types/feishuSchema.ts 中,BlockConfigSchema 是扁平的,仅包含 blockType 和 options。缺失了类似飞书原生 API 的 children 递归字段。
  2. BlockFactory 缺少容器支持:
    在 src/services/blockFactory.ts 中,createBlock 方法仅支持 text, code, heading 等基础类型,缺少对 Callout, Quote, Grid 等容器类型的支持,且不支持组装 children 数据。

改进建议

AI给的建议,供您参考。

  1. 修改 Zod Schema (src/types/feishuSchema.ts)
    将 BlockConfigSchema 改为递归结构,允许传入 children
  2. 扩展 BlockFactory (src/services/blockFactory.ts)
    • 增加对 BlockType.CALLOUT 等容器类型的支持。
    • 在构建 Block 对象时,支持处理传入的 children 数组,将其转换为飞书 API 需要的嵌套格式。

期望工作方式

能够通过一次调用完成复杂结构的创建

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions