调用Notion API创建页面报错body.parent未定义该如何解决?
问题根因与修复方案
1. 最常见诱因:Shell 引号转义异常
你当前遇到的parent未定义报错,90%以上的场景是运行curl的终端环境无法正确识别单引号包裹的JSON payload,导致请求体被拆分解读、发送到Notion服务器的JSON格式损坏,后端无法解析出parent字段:
- 如果你使用的是Windows CMD/PowerShell,不支持单引号作为字符串边界符,需要将所有外层单引号替换为双引号,JSON内部的双引号用反斜杠转义,正确格式参考:
curl "https://api.notion.com/v1/pages" ^ -H "Authorization: Bearer secret_SECRET" ^ -H "Content-Type: application/json" ^ -H "Notion-Version: 2021-08-16" ^ --data "{\"parent\": {\"page_id\": \"PAGEID\"}, \"properties\": {}}"
- 如果你使用的是Linux/MacOS的bash/zsh,可以在curl命令后添加
-v参数打印完整请求日志,确认请求体输出的JSON结构完整没有乱码。
2. 必选参数缺失补充
Notion 创建页面的POST接口强制要求携带properties字段,即使你没有自定义属性也需要传入空的properties对象,省略该字段也会触发参数校验连锁异常,你的示例代码里移除了该字段,需要补回。
3. 权限与参数合法性校验
- 确认你填写的
PAGEID对应的父页面,已经在共享设置中添加了你当前使用的Integration作为编辑者,未授权的父ID会触发校验异常。 - 如果你要挂载的父节点是数据库而非普通页面,需要将
parent字段的键改为database_id,否则会被判定为参数无效。
内容的提问来源于stack exchange,提问作者Tau-Tau
相关产品推荐
相关产品推荐

