onenote的MS Graph API行为不一致

时间:2017-08-04 08:50:50

标签: onenote onenote-api microsoft-graph

  1. 当某个部分重命名为get sections时,API并未反映更新的名称,而get page api则显示更新的父部分名称。这似乎是ON API中的错误/数据不一致。

  2. 在页面级别更改任何内容时,会更新某个部分的lastModifiedDateTime,但在笔记本级别不会更改任何内容。这似乎又像是一些数据不一致的问题。

  3. 有人可以清除这种混乱。

    (注意 - 以上所有内容均可使用MS Graph API Explorer进行测试 )

1 个答案:

答案 0 :(得分:1)

这是两个独立的主题:

  1. 部分重命名
  2. 这是OneNote中的已知限制/错误 - 如果您在OneNote Online(在浏览器中)重命名某个部分,那么API GET~ / notebooks / id / sections或GET~ /部分将为您提供“旧”名称。这是因为OneNote Online实际上并不重命名文件,它只将文件标记为“要重命名” - 如果您在OneDrive / SharePoint中查看文件本身,它仍然具有旧名称。

    一旦OneNote Native Client看到该部分(例如OneNote for Windows)看到标记为“要重命名”的部分,它实际上会重命名该文件。

    OneNote API GET~ / sections / id / pages实际上是查看部分二进制文件,并能够判断该部分是否已重命名,这就是为什么该名称可以被称为“最新”的名称

    我已将此反馈传达给我们的团队,我们正在探索替代方案 - 我鼓励您在uservoice中启动项目,以便我们更好地了解影响。

    https://onenote.uservoice.com/forums/245490-onenote-developer-apis

    1. 笔记本/部分说明中的LastModifiedTime(LMT):
    2. 部分的LMT等于max(其下的页面的LMT)。

      然而,节组的LMT不是最大值(其下的节和节组的LMT)。节组是一个文件夹,它的LMT应该像传统文件系统中的文件夹一样(反映最后一次添加/删除文件/文件夹的时间)。

      但是,根据笔记本/部分组下方的实体,没有什么能阻止您使用$ expand并自行计算LMT(根据您的理解)。 https://blogs.msdn.microsoft.com/onenotedev/2014/12/16/beta-get-onenote-entities-in-one-roundtrip-using-expand/