{
"object": "error",
"status": 400,
"code": "validation_error",
"message": "{Bal has an invalid date value."
}
Run Code Online (Sandbox Code Playgroud)
我尝试了很多类型,但总是失败。为什么不直接写在文档中呢?
2021/05/14
2021/14/05
2021/5/14
2021/05/14 00:00:00
Run Code Online (Sandbox Code Playgroud) 我正在成功调用来查询 Notion 数据库,但是从 API 调用中获取的数据与 Notion 中的实际数据不一致。
我一直在抓狂,因为我不知道是什么导致了这种不一致。我在这里做错了什么吗?
这是我在查询中使用的过滤器:
const filter = {
property: '_Inbox?',
formula: {
checkbox: {
equals: true,
},
},
}
Run Code Online (Sandbox Code Playgroud)
问题是,响应返回了许多结果,而公式实际上false在 Notion 中返回了这些结果。这是一个例子:
除了数据与公式不一致之外,其他一切似乎都运行良好。这似乎也不是缓存问题,因为我也得到了公式不匹配的旧项目。
任何帮助将不胜感激。或者至少确认我没有疯并且 Notion API 存在问题?
干杯
我对 API 的概念还比较陌生——据我所知,没有直接的方法可以做我想做的事情,但我想我会问一下,以防我错过了一些东西。
正如问题标题所示,我希望能够查询概念页面并获取 HTML 形式的完整内容,而不必解析每个块。有什么办法可以做到这一点吗?
我想,考虑到导出到 html 的概念,api 中会有一个内置的方法,但似乎没有。我找到的唯一解决方案要求数据库公开,这并不真正适合我的需求。
我可以使用 Notion API 创建一个新页面,作为该页面的一部分,我想创建并包含一个数据库表。我能够成功创建页面,但是当尝试使用 child_database 块创建数据库时,我收到状态 400 错误。下面的示例代码。任何帮助表示赞赏。
let payload = {
'parent': {'database_id': database_id_variable},
'properties': {
'Name': {
'title': [
{'text': {'content': 'My Grocery List Page'}}
]
}
},
'children': [
{
'object': 'block',
'type': 'child_database',
'child_database': {
'title': 'Grocery List',
'properties': {
'Grocery item': {
'type': 'title',
'title': [{ 'type': 'text', 'text': { 'content': 'Tomatoes' } }]
},
}
}
},
]
}
let response = await fetch('https://api.notion.com/v1/pages', {
method: 'POST',
body: JSON.stringify(payload),
headers: {
'Authorization' : 'Bearer …Run Code Online (Sandbox Code Playgroud) 这是错误:
客户端警告:请求失败{代码:'validation_error',消息:'正文验证失败。修复一:应该定义 body.properties.body.id,而不是undefined。body.properties.body.name 应该被定义,而不是undefined。body.properties.body.start 应该被定义,而不是undefined。' 主体验证失败。修复一:应该定义 body.properties.body.id,而不是undefined。body.properties.body.name 应该被定义,而不是undefined。body.properties.body.start 应该被定义,而不是undefined
这是我的代码:
async function update() {
const res_2 = await notion.databases.query({ database_id: `${databaseId}` });
res_2.results.forEach(async (page, index) => {
let property_id = page.properties.Excerpt.id;
if (index === 0) {
try {
const res_3 = await notion.pages.update({
page_id: page.id,
properties: {
[property_id]: {
type: "rich_text",
rich_text: {
"content": "hey"
}
}
}
})
} catch (err) {
console.log(err.message)
}
}
})
}
update(); …Run Code Online (Sandbox Code Playgroud) 请问有没有办法可以方便的获取数据库的页数?
由于我没有找到任何端点,因此我想出了这个不太好的解决方案:
let count = 0
let hasMore = true
let nextCursor = undefined
while (hasMore) {
const result: QueryDatabaseResponse = await notion.databases.query({
database_id: databaseId,
start_cursor: nextCursor ?? undefined,
})
count += result.results.length
hasMore = result.has_more
nextCursor = result.next_cursor
}
Run Code Online (Sandbox Code Playgroud)
我错过了文档中的某些内容吗?
我正在尝试使用 api 更新页面的状态。我使用的是notion构建的JS-sdk。
要更新状态,您必须更新属性对象。我无法让它按预期工作,它总是抛出错误。
我尝试使用属性的名称(“状态”),并且尝试使用属性的 id,但出现了相同的错误。
const response = await notion.pages.update({
page_id: 'abc123',
properties: {
[statusProp.id]: {
status: {
title: 'Done'
}
}
}
})
Run Code Online (Sandbox Code Playgroud)
我收到的错误如下:
{
object: 'error',
status: 400,
code: 'validation_error',
message:
'body failed validation. Fix one:\nbody.properties.bSYl.title should be defined, instead was `undefined`.\nbody.properties.bSYl.rich_text should be defined, instead was `undefined`.\r\nbody.properties.bSYl.number should be defined, instead was `undefined`.\nbody.properties.bSYl.url should be defined, instead was `undefined`.\nbody.properties.bSYl.select should be defined, instead was `undefined`.\nbody.properties.bSYl.multi_select should be defined, instead was `undefined`.\nbody.properties.bSYl.people should be defined, instead was …Run Code Online (Sandbox Code Playgroud) 如何在顶层(工作区)创建页面。
我知道有“工作空间”的“类型”,但只有在检索这样的页面时才显得明显。添加页面端点需要父 ID。那么如何在工作区级别创建页面呢?
这是在使用notion API检索数据库的值的过程中出现的问题。
通信成功,所以正在解析json数据,但是存在一个问题,没有加载nootion DB中输入的属性值。
使用Postman测试时,属性名称反映如下,但只输入ID。
"properties": {
"Tag": {
"id": "%60fit"
},
"My property": {
"id": "ks%40t"
},
"Name": {
"id": "title"
}
},
Run Code Online (Sandbox Code Playgroud)
有哪些方法可以思考这个问题?