OneNote API 可以将笔记本或分区从一个用户复制到 Office 365 中的另一个用户吗

Can the OneNote API copy a notebook or section from one user to another user in Office 365

我正在尝试将笔记本的一部分甚至笔记本本身从一个用户的 OneDrive 中的笔记本复制到另一个用户在其 OneDrive 中的笔记本。我登录的用户有权读写这两个笔记本。我收到错误响应:

message=The specified resource ID does not exist.
@api.url=http://aka.ms/onenote-errors#C20102
code=20102

我使用的路径格式为 https://www.onenote.com/api/v1.0/users/{id}/notes/sections/{id}/copyToNotebook,其中的 id 用于源部分。

估计是因为post请求中的id代表不同用户下的notebook

如果我正在复制到 SharePoint 网站或组,那么 post 请求可以有额外的 ID 来标识它,因此如果有一个参数来标识要复制到的用户,这是合乎逻辑的。

当两个笔记本都在同一用户的 OneDrive 中时,复制工作完美。

Office 365 OneDrive 中的用户之间有什么方法可以做到这一点吗?

是的,您可以将一个笔记本的某个部分复制到另一个用户的笔记本,只要您对该用户的笔记本(或其他站点下的笔记本)具有写入权限即可。

在您的场景中,destination/post 主体必须包含笔记本的 ID,以及 siteCollectionIdsiteId,或存储笔记本的站点的 groupId。 (检查邮件正文格式 here)。如果要将分区复制到其他用户的笔记本,则需要该用户的 OneDrive for Business 的 siteCollectionId 和 siteId;如果您想将其复制到存储在站点中的笔记本中,您将需要该站点的 ID。

您需要这些额外 ID 的原因是因为默认情况下副本 API 会认为目标笔记本存储在您的 OneDrive for Business 中。通过指定这些 ID,您可以告诉 API 目的地在另一个位置。我假设您没有提供那些错误的 ID。

您将获得有关获取 siteCollectionId 和 siteId 的更多信息here