Notion API:有没有办法获取“人员”属性中提到的用户的子页面数量?

Posted

技术标签:

【中文标题】Notion API:有没有办法获取“人员”属性中提到的用户的子页面数量?【英文标题】:Notion API: Is there a way to get the number of child pages with a user mentioned in the "people" property? 【发布时间】:2021-09-05 14:43:58 【问题描述】:

我正在尝试创建一些 Notion API 集成,以帮助我的团队预测人员配备的可用性。

我正在编写一个函数,该函数应使用 people 过滤器类型计算在数据库子页面的 people 属性中提及特定用户的所有次数。

这是我的代码:

async function getUserAssignmentCount(database, user) 
  const response = await notion.databases.query(
    database_id: database.id,
    filter: 
      "property": "People",
      "people": 
        "contains": user.id,
      ,
    ,
  );

  return Object.keys(response).length;

由于我不太明白的原因,这个函数只是为每个用户返回4。快速查看the API docs for the people filter property 表明您目前无法使用people 过滤器过滤people 属性......所以......idk??

谁能想到一种方法来实现这一点,要么通过 API 中未记录的内容,要么通过一些从数据库people 属性中获取所有用户 ID 的 hacky 方式?

谢谢

【问题讨论】:

【参考方案1】:

嗯,那太虎头蛇尾了。 API 的文档仍然很差,但我找到了方法:

async function getUserAssignmentCount(database, user) 
  // Returns an object with keys `object`, `results`, `next_cursor`, `has_more`
  const response = await notion.databases.query(
    database_id: database.id,
    filter: 
      "property": "People",
      "people": 
        "contains": user.id,
      ,
    ,
  ); 
  
  // Returns the length of the filter results
  return response.results.length;

【讨论】:

以上是关于Notion API:有没有办法获取“人员”属性中提到的用户的子页面数量?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Notion API 中获取块 ID?

如何通过 Notion Public API 获取页面的 url?

带有 Google 日历的 Notion API

Notion API [Beta]:将用户添加到工作区并更改其权限

在 Unity 中向 Notion API 发出 POST 请求

Notion API - 使用 Notion OAuth 或 API 令牌创建数据库