Graph API OneNote:创建包含页面内容的部分

问题描述

我有一个需求,需要下载 OneNote 笔记本并按需重新上传

我正在使用 Graph API (DriveItem API) 来跟踪 OneNote 笔记本中的更改并下载。

现在,当我下载它时,我看到部分和页面只下载了一个文件。这个文件有二进制数据,我认为是页面数据和部分元数据。

当我再次上传时,我正在使用 OneNote API。这是因为 Graph API 不支持创建 NoteBook 项目。

所以我可以使用 OneNote API 创建笔记本,但我不知道如何将下载的内容(部分+页面数据)上传到这个新创建的笔记本。我可以单独创建部分和页面,但我的问题是在下载时我将部分和页面数据合并到一个文件中。

如果有人遇到过这样的问题并且知道任何修复/解决方法,请告诉我。

解决方法

我假设您正在使用 microsoft-graph 的 OneDrive-API 组件下载 OneNote Notebook(这是一个特殊文件夹)及其组成文件(OneNote .one 文件是带页面的部分,.onetoc2 是索引文件用于订购部分)。生成的笔记本不能简单地上传,因为它们没有特殊标志来向 OneNote 表明它们是 OneNote 笔记本。但是,您可以创建一个空的 Notebook,然后通过 OneDrive-API 上传 PUT 请求将 .one 文件上传到其中。 另一种方法是将 Sharepoint 站点视为 WebDAV 服务器并使用诸如 rclone 之类的实用程序。