使用PHP调用Notion API查询数据库时筛选条件不生效如何解决
问题原因
你提交的请求payload结构不符合Notion API要求,筛选条件需要嵌套在顶层的filter字段中,你当前直接将筛选规则放在payload顶层,API无法识别到筛选配置,因此默认返回全量数据库数据。此外你没有指定请求的Content-Type为application/json,部分环境下会导致API无法正确解析请求体。
修复方案
修改两处代码即可:
- 调整请求体结构,给筛选规则套上
filter字段 - 在请求头中添加Content-Type声明
修改后的对应代码段如下:
//post data $data_array = [ "filter" => [ "property" => "DataElement", "title" => ["equals" => "bigHouse"] ] ]; $data = json_encode($data_array); //intialize cURL $ch = curl_init(); // 省略其他不变的curl配置 curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $token, 'Notion-Version: '.$version, 'Content-Type: application/json' ));
补充验证点
- 确认数据库中
DataElement列名的拼写、大小写、空格和代码中配置完全一致 - 确认你使用的Notion集成已经被添加到对应数据库的共享成员列表中,且拥有内容读取权限
内容的提问来源于stack exchange,提问作者Brendon
相关产品推荐
相关产品推荐

