调用Notion API仅返回属性ID缺失属性值的排查思路咨询
Notion API返回属性仅含ID无实际值的排查解决思路
- 核对调用的接口路径是否匹配需求
你贴出的返回结构,是GET /v1/databases/{database_id}(获取数据库元信息接口)的典型返回:这个接口仅用来拉取数据库的属性结构配置,本身就不会返回数据库内已录入的条目属性值,properties下只返回属性名、属性ID、字段类型配置属于正常表现。要读取已录入的属性值,需要调用POST /v1/databases/{database_id}/query接口查询数据库内的页面条目,这个接口返回的每个页面对象中才会携带各属性的实际录入值,90%的同类问题都是调错接口导致的。 - 检查请求头的API版本配置
Notion API强制要求请求携带Notion-Version头,未携带、使用已废弃的旧版本号都会导致返回字段缺失。目前稳定兼容的版本值为2022-06-28,确认请求头中已正确配置该参数即可。 - 核对集成权限配置
- 确认你创建的Notion集成账号,已经被添加到目标数据库的共享成员列表中,未获得数据库授权的集成无法拉取到完整的属性数据。
- 如果给集成配置了最小权限规则,需要确认已开启「读取数据库内容」「读取页面内容」的对应权限,权限不足时接口会自动截断字段,仅返回属性ID。
- 检查查询类接口的参数配置
如果确认调用的是query查询接口或单页面查询接口(GET /v1/pages/{page_id}),需要检查是否误传了filter_properties参数:这个参数的作用是指定接口仅返回传入ID对应的属性值,没被列入参数的属性就只会返回ID字段,不会返回实际内容。配置时要么把需要读取的属性ID全部加入参数列表,要么直接移除该参数获取全量属性值。
验证标准:正确调用query接口后,返回的properties字段下,每个属性除id外还会携带
type字段,以及和类型匹配的取值字段(例如标题属性带title数组、多选属性带multi_select数组),数组内存储的就是实际录入的属性值。
内容的提问来源于stack exchange,提问作者Moon HyeSeong
相关产品推荐
相关产品推荐

