Scriptable 的概念小部件

Notion widget by Scriptable

我尝试使用 Notion API 创建 Scriptable 小部件。 我需要获取数据库中的页数。

所以,我使用了 guide to create token and share DB, and by this guide 我创建了 cURL 请求:

  curl 'https://api.notion.com/v1/databases/%DB_ID%/query' \
  -H 'Authorization: Bearer %TOKEN%' \
  -H 'Notion-Version: 2021-05-13' \
  --data '{
      "filter": 

            {

            }
        }'

body中的过滤器是必需的,没有这个参数你会得到错误。

所以,卷曲工作正常。


然后我尝试创建可编写脚本的代码:

async function notion_fetchData() {

  const url = 'https://api.notion.com/v1/databases/%DB_ID%/query'
  request = new Request(url)
  request.headers = {'Authorization':Bearer ${todoist_Api_key}, 'Notion-Version': '2021-05-13'}
  request.body = Data.fromString('{"filter": {}}')

  const res_notion = await request.loadJSON()
  console.log(res_notion)
  return res_notion
}

此代码出现错误:“资源超出最大大小”。 知道如何调试这个错误吗?

在Slack社区的帮助下,我们找到了答案,在iOS13上,不允许在GET请求中添加body。为了让它再次工作,我们可以切换到 POST/PUT 请求或通过 GET 请求的 url 参数添加正文值。

官方概念js客户端中的代码:

const databasesQuery = {
  //POST instead GET
  method: "post",
  pathParams: ["database_id"],
  queryParams: [],
  bodyParams: ["filter", "sorts", "start_cursor", "page_size"],
  path: (p) => `databases/${p.database_id}/query`,