如何向已创建的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 } }
- 标题2:
简单代码示例(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
相关产品推荐
相关产品推荐

