onenote 的 MS Graph API 行为不一致
Inconsistency in MS Graph API behaviour for onenote
当重命名部分时,获取部分 API 不反映更新的名称,而获取页面 api 显示更新的父部分名称。这似乎是 ON API 中的错误/数据不一致。
在页面级别更改任何内容时,更新一个部分的 lastModifiedDateTime,但在笔记本级别没有任何更改。这似乎又是一些数据不一致的问题。
有人可以消除这种困惑吗?
(注意 - 以上所有内容都可以使用 MS Graph API Explorer 进行测试
)
这是两个不同的主题:
- 分区重命名
这是 OneNote 中已知的 limitation/bug - 如果您在 OneNote Online 中(在您的浏览器中)重命名一个分区,那么 API GET ~/notebooks/id/sections 或 GET ~/sections将为您提供 "old" 名称。这是因为 OneNote Online 实际上并没有重命名文件,它只是将文件标记为 "to be renamed" - 如果您在 OneDrive/SharePoint 中查看文件本身,它仍将具有旧名称。
一旦 OneNote Native Client 看到该部分(例如 Windows 的 OneNote)看到标记为 "to be renamed" 的部分,它实际上会重命名该文件。
OneNote API GET ~/sections/id/pages 实际上查看分区二进制文件并能够判断分区是否已重命名,这就是为什么该名称可以作为 "most up to date"一个.
我已将此反馈传达给我们的团队,我们正在探索替代方案 - 我鼓励您在 uservoice 中开始一个项目,以便我们更好地了解影响。
https://onenote.uservoice.com/forums/245490-onenote-developer-apis
- notebook/section 上的 LastModifiedTime (LMT) 说明:
一个部分的LMT等于max(它下面的页面的LMT)。
然而一个分区组的LMT不是最大值(分区及其下的分区组的LMT)。节组是一个文件夹,它的 LMT 应该像传统文件系统中的文件夹一样(反映直接在其下的 file/folder 的最后 add/delete 的时间)。
但是,没有什么可以阻止您使用 $expand 并根据 notebook/section 组下的实体自行计算 LMT(如您所理解的)。
https://blogs.msdn.microsoft.com/onenotedev/2014/12/16/beta-get-onenote-entities-in-one-roundtrip-using-expand/
当重命名部分时,获取部分 API 不反映更新的名称,而获取页面 api 显示更新的父部分名称。这似乎是 ON API 中的错误/数据不一致。
在页面级别更改任何内容时,更新一个部分的 lastModifiedDateTime,但在笔记本级别没有任何更改。这似乎又是一些数据不一致的问题。
有人可以消除这种困惑吗?
(注意 - 以上所有内容都可以使用 MS Graph API Explorer 进行测试 )
这是两个不同的主题:
- 分区重命名
这是 OneNote 中已知的 limitation/bug - 如果您在 OneNote Online 中(在您的浏览器中)重命名一个分区,那么 API GET ~/notebooks/id/sections 或 GET ~/sections将为您提供 "old" 名称。这是因为 OneNote Online 实际上并没有重命名文件,它只是将文件标记为 "to be renamed" - 如果您在 OneDrive/SharePoint 中查看文件本身,它仍将具有旧名称。
一旦 OneNote Native Client 看到该部分(例如 Windows 的 OneNote)看到标记为 "to be renamed" 的部分,它实际上会重命名该文件。
OneNote API GET ~/sections/id/pages 实际上查看分区二进制文件并能够判断分区是否已重命名,这就是为什么该名称可以作为 "most up to date"一个.
我已将此反馈传达给我们的团队,我们正在探索替代方案 - 我鼓励您在 uservoice 中开始一个项目,以便我们更好地了解影响。
https://onenote.uservoice.com/forums/245490-onenote-developer-apis
- notebook/section 上的 LastModifiedTime (LMT) 说明:
一个部分的LMT等于max(它下面的页面的LMT)。
然而一个分区组的LMT不是最大值(分区及其下的分区组的LMT)。节组是一个文件夹,它的 LMT 应该像传统文件系统中的文件夹一样(反映直接在其下的 file/folder 的最后 add/delete 的时间)。
但是,没有什么可以阻止您使用 $expand 并根据 notebook/section 组下的实体自行计算 LMT(如您所理解的)。 https://blogs.msdn.microsoft.com/onenotedev/2014/12/16/beta-get-onenote-entities-in-one-roundtrip-using-expand/