我正在尝试使用 HTTP 请求来过滤 Notion 数据库中的条目。目前有内置的 Zapier 操作用于创建、更新和查找数据库项目,但不是多个且不带参数。
目前,我可以使用如下所示的 POST 请求检索所有数据库项目:
https://api.notion.com/v1/databases/[database_id]/query
Notion 提供以下格式来查询和过滤项目
https://api.notion.com/v1/databases/[database_id]/query?filter_properties=[property_id_1]&filter_properties=[property_id_2]
我正在尝试过滤两个属性:名为“Approved”的复选框属性和名为“Episodes”的单选属性。在 Zapier 中检索所有数据库项目显示属性 ID 应分别为
IJGI
和 bacf6208-4106-4e4c-9caa-7780af3f74d5
。
根据我的理解,这意味着我的查询应该如下所示:
https://api.notion.com/v1/databases/[database_id]/query?filter_properties=lJGI&filter_properties=bacf6208-4106-4e4c-9caa-7780af3f74d5
不幸的是,测试不断产生错误 400 和注释:具有以下 ID 的数据库架构格式错误。
我已仔细检查我的数据库 ID 是否正确,我的数据库与我的集成共享,标头包括授权、内容类型和概念版本。我还尝试了各种其他更传统的查询字符串格式类型,例如
/query?checkbox=true
。全部产生错误消息。
https://api.notion.com/v1/databases/897e5a76ae524b489fdfe71f5945d1af/query,not像https: //api.notion.com/v1/databases/897e5a76-ae52-4b48-9fdf-e71f5945d1af/query
但我也看到您没有以正确的方式提供过滤器,您正在寻找的是过滤器主体参数,而不是filter_properties查询参数。所以你的网址应该是
https://api.notion.com/v1/databases/897e5a76ae524b489fdfe71f5945d1af/query 你的身体(被 zapier 标记为“数据”)应该看起来像这样:
{
"and": [
{
"property": "Approved",
"checkbox": {
"equals": true
}
},
{
"property": "Episodes",
"select": {
"equals": "React"
}
},
]
}
所有过滤条件都记录在此处:https://developers.notion.com/reference/post-database-query-filter
这样您就可以避免使用更容易混淆的属性 id。