【问题标题】:List databases return no results列出数据库不返回任何结果
【发布时间】:2021-08-07 12:35:27
【问题描述】:

我有一个工作区,其中包含与我的集成共享的 2 个数据库,基本上它可以工作,我得到 200 个 OK 代码。

这就是我拥有的功能,标头包含身份验证令牌:

def listDatabases(self):
    r = requests.get('https://api.notion.com/v1/databases', headers=self.headers)
    if r.status_code == 200:
        return r.json()
    else:
        return r.reason

结果如下:

【问题讨论】:

  • 您对此有何疑问?
  • 我想得到 2 个数据库作为结果,但我什么也没得到 @mkrieger1
  • 在 Notion API 支持页面上,他们说在这里询问与带有“notion-api”标签的 API 相关的任何内容
  • 您是否 100% 确定,您创建了一个集成并与这些集成共享数据库? developers.notion.com/docs/… 如果您已共享它,请仔细检查标题是否正确,即。您在标头中使用的概念令牌和版本。
  • 100% 确定标题是正确的,我也在使用 Get Database,它工作得很好

标签: python python-requests notion-api


【解决方案1】:

我想也许集成所持有的那些数据库权限是从父页面继承而来的。

来自Notion API Reference (List databases):

搜索页面了解更多详情

不再推荐使用此端点,请改用搜索。 此端点只会返回明确共享的页面,而搜索也会返回明确共享的页面中的子页面。

一种简单的验证方法是确认“基于 xxx”是否包含在 数据库页面(不是其父页面或内联数据库)的共享选项中。如果是,那么该数据库将不会在“列表数据库”端点中返回。

【讨论】:

  • 我制作了一个用于测试 2 个数据库的页面,我与集成共享了这个页面,因此它被包含在内
  • 请显式一一共享那些数据库,Notion已经不再推荐使用该端点
【解决方案2】:

我相信这是因为您没有在 url 中发送数据库 id https://api.notion.com/v1/databases/**database_id**

如果您不指定 database_id,它将采用我认为没有任何记录的第一个数据库。

【讨论】:

  • 我正在使用 List Databases,而不是 get 方法,根据它应该列出与经过身份验证的集成共享的所有数据库的文档。所以我不需要任何 database_id [reference(]developers.notion.com/reference/get-databases)
猜你喜欢
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 2015-05-08
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 2014-12-14
  • 2015-07-10
相关资源
最近更新 更多