OneNote API: "Query operation not accepted" 过滤页面 GET
OneNote API: "Query operation not accepted" when filtering a pages GET
我正在尝试从 OneNote REST API 获取笔记本的页面列表。
一个选项是使用 /api/v1.0/notes/sections/[ID]/pages
遍历部分列表并获取每个部分的页面
相反,为了减少请求的数量,我通过 parentNotebook/id
过滤了对 /v1.0/me/notes/pages
的调用,但是我得到了,例如:
The query operation(s) parentNotebook/id eq [ID]
OR parentNotebook/id eq [ID] OR parentNotebook/id eq [ID] not supported.
http://aka.ms/onenote-errors#C20106
错误 #20106 指出:
Your request contains a query operator that is not supported. See
OneNote API reference.
我对 OData 4.0 文档的简要参考使我相信 parentNotebook/id
是正确的语法,请问我做错了什么?
更新
所以,如果我一次做一个,它确实有效;问题似乎是 OR
?
我可以更改我的过滤器以包含多个笔记本,还是我应该对每个笔记本进行 API 调用?
具有讽刺意味的是,当我确实对每个笔记本进行调用时,我得到了我的第一个 http 429 节流手掌,尽管在请求之间添加 2 秒的暂停似乎可以解决这个问题。
刚刚在 interactive console 中尝试了以下操作并返回了成功的 200 响应。
GET https://www.onenote.com/api/v1.0/me/notes/pages?filter=parentNotebook/id eq '0-C6703B3BE9D6A5E0!317' or parentNotebook/id eq '0-D8E91FC12048CF4A!515'
*NOTE* replace the above notebook ids with your own ids.
因此可以使用 or 表达式对多个笔记本进行过滤。
我正在尝试从 OneNote REST API 获取笔记本的页面列表。
一个选项是使用 /api/v1.0/notes/sections/[ID]/pages
相反,为了减少请求的数量,我通过 parentNotebook/id
过滤了对 /v1.0/me/notes/pages
的调用,但是我得到了,例如:
The query operation(s) parentNotebook/id eq [ID]
OR parentNotebook/id eq [ID] OR parentNotebook/id eq [ID] not supported.
http://aka.ms/onenote-errors#C20106
错误 #20106 指出:
Your request contains a query operator that is not supported. See OneNote API reference.
我对 OData 4.0 文档的简要参考使我相信 parentNotebook/id
是正确的语法,请问我做错了什么?
更新
所以,如果我一次做一个,它确实有效;问题似乎是 OR
?
我可以更改我的过滤器以包含多个笔记本,还是我应该对每个笔记本进行 API 调用?
具有讽刺意味的是,当我确实对每个笔记本进行调用时,我得到了我的第一个 http 429 节流手掌,尽管在请求之间添加 2 秒的暂停似乎可以解决这个问题。
刚刚在 interactive console 中尝试了以下操作并返回了成功的 200 响应。
GET https://www.onenote.com/api/v1.0/me/notes/pages?filter=parentNotebook/id eq '0-C6703B3BE9D6A5E0!317' or parentNotebook/id eq '0-D8E91FC12048CF4A!515'
*NOTE* replace the above notebook ids with your own ids.
因此可以使用 or 表达式对多个笔记本进行过滤。