You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Notion SDK或API修改现有块的block type类型?

解决方案

报错核心原因

Notion API 本身不支持直接调用块更新接口修改已有块的类型,接口会自动校验请求体传入的块类型与原块现有类型是否匹配,不匹配就会抛出你遇到的类型校验错误。

可落地实现步骤

  • 第一步:调用块查询接口获取原有 paragraph 块的全部文本内容、富文本样式、子块(如果有)等信息
  • 第二步:在原有块的相同位置新建你需要的目标类型块(比如 heading_2),把上一步拿到的内容完整填充到新块中
  • 第三步:删除原来的 paragraph 块即可实现类型转换的效果

参考代码示例(Node.js 环境)

// 1. 拉取原有段落块的内容
const oldBlock = await notion.blocks.retrieve({ block_id: 你的旧块ID });
const paragraphText = oldBlock.paragraph.rich_text;

// 2. 在旧块紧后方插入新的二级标题块
await notion.blocks.children.append({
  block_id: 父页面/父块ID,
  children: [
    {
      type: "heading_2",
      heading_2: {
        rich_text: paragraphText
      }
    }
  ],
  after: 你的旧块ID // 保证新块位置和原块完全一致
});

// 3. 删除旧的段落块
await notion.blocks.delete({ block_id: 你的旧块ID });

注意事项

  • 如果原有块存在嵌套子块,需要先把所有子块内容提取出来,插入到新块下方后再删除原块
  • 数据库、嵌入块等特殊块的内容结构和普通文本块不同,提取内容时需要对应适配字段结构

内容的提问来源于stack exchange,提问作者nirinsanity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:06:09