使用Notion API时如何通过database id获取含PDF的block id
可行性结论
可以实现,但无法直接通过database id一步查询得到目标PDF块的id,需要分两步操作。
具体操作流程
- 拉取数据库关联的页面ID
调用数据库查询接口,传入你持有的database id,获取该数据库下的所有条目,每个条目对应的id字段就是对应关联页面的page id。以Notion官方JS SDK为例,调用示例为:await notion.databases.query({ database_id: "替换为你的实际database id" }) - 遍历页面块筛选目标PDF块
定位到你需要查询的目标页面的page id后,调用块子项查询接口,遍历该页面下所有层级的块内容,筛选类型为pdf的块,对应块的id即为你需要的目标block id。
注意:如果PDF块嵌套在toggle块、分栏块、callout块等父级块内部,需要递归查询所有父块的子块,否则仅查询页面第一层块会遗漏嵌套的PDF资源
特殊场景说明
- 如果你的PDF是存放在数据库条目的「文件&媒体」类型属性中,不属于页面内的独立块,无需查询block id,直接在第一步数据库查询返回的条目的对应属性字段中即可获取PDF资源信息。
内容的提问来源于stack exchange,提问作者imk
相关产品推荐
相关产品推荐

