为了通过 REST API 获取有关我最近修改的 OneNote 页面的最新信息,我进行了一个简短的实验,在其中创建了一个新的 Outlook ID;使用 Windows 和 Mac 创建 OneNote 笔记本、分区和页面;并使用 Graph Explorer 运行 OneNote API 查询。我发现页面信息的请求使用GET .../pages不起作用,很可能是 API 信息未实时更新的结果。下面提供了更多详细信息;如果您能提供更多见解或替代方法,通过 Microsoft Graph 使用 OneNote REST API 从特定部分获取页面信息,我将不胜感激。
Details
今天早些时候,我在 Macbook Pro 上使用 Google Chrome 创建了一个新的 @outlook.com 帐户。然后使用 OneNote for Mac,我创建了一个新的笔记本、分区和页面。所有方面都与 OneNote Online 实时同步。但是,那GET https://graph.microsoft.com/v1.0/me/onenote/pages尽管状态为 200,但 Microsoft Graph Explorer 中的调用未呈现任何页面信息。随后,我在附近的 Windows 计算机上登录了这个新的 Outlook 帐户,并能够立即同步 OneNote for Windows 中的所有内容。我在 Windows 计算机上创建了一个新的笔记本、分区和页面,然后也在该计算机上使用了 Graph Explorer;尽管状态为 200,但同一调用未呈现任何页面信息。从特定部分调用页面时也观察到了这一点。两台计算机之间的同步几乎是即时的。
我继续使用GET https://graph.microsoft.com/v1.0/me/onenote/sections and GET https://graph.microsoft.com/v1.0/me/onenote/notebooks. 这些调用分别提供了有关笔记本和部分的最新信息。另外,我用了POST https://graph.microsoft.com/v1.0/me/onenote/sections/{section-id}/pages通过 Windows 机器上的 Graph Explorer 来发布示例页面(请参阅“构造消息正文”下的代码)到我的部分之一。该页面立即在两台计算机上呈现。使用GET .../pages在 Windows 机器上仅返回此发布页面的信息。尽管状态为 200,但通过 Graph Explorer 在 Mac 上进行相同的调用并未呈现任何信息.
我之前发布了一个关于为什么 OneNote API 中的页面信息似乎有 3 天的滞后。与此行为一致,页面信息的更新速度(大约为天)比笔记本或节信息(大约为秒)慢得多。此外,通过我自己的程序调用 API 时也会出现相同的滞后行为。
关键点
当节和笔记本信息实时更新时,页面信息通过GET .../pages呼叫似乎无法正常工作。
此问题似乎与操作系统、单个帐户或进行调用的应用程序无关,因为同时使用了 Windows 和 Mac,现有帐户和为此实验创建的新帐户之间的结果具有可比性,并且在以下情况下结果具有可比性:使用 Graph Explorer 或通过 R 发出 API 调用。
这个问题似乎局限于为 API 获取页面信息或创建页面信息的函数或进程,因为官方 OneNote 程序之间的同步似乎完好无损。