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

如何向已创建的Notion页面中添加Blocks?

在Notion页面创建后添加Blocks的实现方法

Notion API完全支持在页面创建后追加或修改Blocks内容,你需要用到页面更新接口,而非创建页面的接口,具体实现步骤如下:

  • 先获取目标页面ID:调用创建页面接口后,返回响应里的id字段就是该页面的唯一标识,务必保存好这个值。
  • 使用PATCH /v1/pages/{page_id}接口更新内容:请求头需带上你的Notion API密钥和Content-Type: application/json,请求体中指定children字段,传入要添加的Blocks数组。
  • 按Notion规范构造Blocks:每个Block必须包含object: "block"和对应的类型字段,举几个常用示例:
    • 标题2:
      {
        "object": "block",
        "type": "heading_2",
        "heading_2": {
          "rich_text": [{"type": "text", "text": {"content": "食材列表"}}]
        }
      }
      
    • 复选框(待办项):
      {
        "object": "block",
        "type": "to_do",
        "to_do": {
          "rich_text": [{"type": "text", "text": {"content": "100g 面粉"}}],
          "checked": false
        }
      }
      

简单代码示例(Python)

import requests

NOTION_API_KEY = "你的API密钥"
PAGE_ID = "创建页面后得到的ID"

url = f"https://api.notion.com/v1/pages/{PAGE_ID}"
headers = {
    "Authorization": f"Bearer {NOTION_API_KEY}",
    "Content-Type": "application/json",
    "Notion-Version": "2022-06-28"  # 建议使用官方最新稳定版本
}

# 要添加的Blocks数组
payload = {
    "children": [
        {
            "object": "block",
            "type": "heading_2",
            "heading_2": {
                "rich_text": [{"type": "text", "text": {"content": "食材列表"}}]
            }
        },
        {
            "object": "block",
            "type": "to_do",
            "to_do": {
                "rich_text": [{"type": "text", "text": {"content": "100g 低筋面粉"}}],
                "checked": False
            }
        },
        {
            "object": "block",
            "type": "to_do",
            "to_do": {
                "rich_text": [{"type": "text", "text": {"content": "2个鸡蛋"}}],
                "checked": False
            }
        }
    ]
}

response = requests.patch(url, headers=headers, json=payload)
response.raise_for_status()  # 检查请求是否成功

注意事项

  • 确保你的API令牌对目标页面有编辑权限,否则会返回权限错误。
  • 必须指定正确的Notion-Version头,不同版本的API格式可能存在差异。
  • 如果要替换页面原有内容而非追加,需在请求体中加入append: false(默认值为true,即追加到现有内容末尾)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:54:15