在OneDrive中创建OneNote笔记本时,Microsoft将显示一个DriveItem
,其包装面为type
,其中oneNote
为包。正是根据文档。 driveItem
似乎是指向实际笔记本的链接/引用-存储在“隐藏”文件夹中。
也有Graph API来获取所有用户的OneNote笔记本的列表,您可以通过id
来检索特定的笔记本。但是,笔记本电脑的id
与driveItem
并不相同。
给出一个带有OneNote包刻面的driveItem
,如何获取实际笔记本的id
,以便我可以检索它及其详细信息?
我使用Graph Explorer进行了彻底的研究,但没有成功。我不敢相信这是真的,但是笔记本的“名称”是否必须唯一?这是我可以看到的唯一一个属性(所有者/用户权限除外),可以在两个对象之间建立关联。
答案 0 :(得分:2)
笔记本id
并未通过DriveItem
资源浮出水面。它们是由API返回的,因此可以准确地反映出OneDrive UI返回的相同文件,但它们并不意味着可以直接进行交互。要使用笔记本电脑,您需要使用Notes API。
OneDrive Documentation在此主题上更为直接:
使用OneNote笔记本
注意:尽管OneDrive存储OneNote笔记本,但您不应使用OneDrive API来处理OneNote笔记本。
此文档集还包含对Package resource type的更完整描述。
目前,没有一种简单的方法可以从与之对应的id
中发现笔记本的DriveItem
。您可以使用一种技巧,但要公平警告,这不是已记录的方法。
使用Graph Explorer(无需登录),执行以下调用:
https://graph.microsoft.com/v1.0/me/drive/items/01BYE5RZ35EU76DRTYZ5DK5DATNBSRPLC7
查看结果中的eTag
:
"eTag": "\"{E13F257D-78C6-46CF-AE8C-13686517AC5F},1\""
现在使用以下方法在“笔记本”列表中添加标签:
https://graph.microsoft.com/v1.0/me/onenote/notebooks
第一个返回的笔记本具有以下ID:
"id": "1-e13f257d-78c6-46cf-ae8c-13686517ac5f",
并排查看这些内容时,您会注意到笔记本计算机的id
与eTag
包含相同的数据,尽管顺序略有不同({{1 }}):
{digit}-{guid}
我自己使用过此代码,但请注意,并确保您的代码使用的不仅仅是"eTag": "\"{E13F257D-78C6-46CF-AE8C-13686517AC5F},1\""
"id": "1-e13f257d-78c6-46cf-ae8c-13686517ac5f",
(我查看了eTag
,eTag
和{ {1}}个属性)。它不受“支持”,因此可能会发生变化,因此比较多个属性可以防止不幸。
哦,别告诉任何人。这只是我们之间。 ;)