调用Notion list databases接口返回200却无结果如何解决
Notion list databases接口返回空结果解决方案
1 检查请求头版本号配置
Notion API要求所有请求必须携带Notion-Version头,仅携带Authorization token无法正常拉取数据。请确认你的self.headers包含对应字段,示例合法配置如下:
self.headers = { "Authorization": "Bearer 你的集成密钥", "Notion-Version": "2022-06-28", "Content-Type": "application/json" }
版本号需使用官方指定的YYYY-MM-DD格式,可使用官方推荐的最新稳定版本。
2 确认共享权限配置正确
请逐个核对目标Database的共享设置:
- 打开Database页面,点击右上角「共享」按钮
- 确认你创建的集成已经被添加到共享列表中,且权限不低于「查看内容」
- 父页面的共享权限不会自动继承给子Database,必须单独给目标Database设置集成共享权限
3 替换为官方推荐的搜索接口
GET /v1/databases接口已经被官方标记为废弃,部分场景下会返回空结果,建议替换为搜索接口筛选Database类型,修改后的请求代码如下:
def listDatabases(self): payload = { "filter": { "value": "database", "property": "object" }, "page_size": 100 } r = requests.post('https://api.notion.com/v1/search', headers=self.headers, json=payload) if r.status_code == 200: return r.json() else: return r.reason
4 处理分页逻辑
如果你的集成有权限访问的Database超过100条,需要通过返回结果中的next_cursor参数分页拉取剩余数据,单次请求最多返回100条结果。
内容的提问来源于stack exchange,提问作者bustrama
相关产品推荐
相关产品推荐

