我正在尝试通过MS Graph获取用户最近文档的预览链接。不幸的是,端点返回的链接不起作用。
要获取有关文件的信息,我首先调用GET https://graph.microsoft.com/beta/me/drive/recent
。然后,我从parentReference属性复制驱动器ID和文档ID。
要获取预览链接,我使用端点POST https://graph.microsoft.com/beta/drives/<DriveID>/items/<DocumentID>/preview
而且效果很好。但是,当我单击链接时,出现错误“此项目可能不存在或不再可用”。该文档存在于SharePoint上,否则将不会出现在“最新文档”下。网址看起来像这样:https://www.onedrive.com/embed?webUrl=xyz.sharepoint.com/sites/nameOfTheSite/docLibName&id=sites/nameOfTheSite/DocLibName&embed=xxx&authToken=xxx
我希望/preview
端点的响应应返回有效的URL。我必须在O365上进行一些配置吗?
非常感谢
答案 0 :(得分:1)
在您的示例中,嵌入链接(preview
看上去 valid 无效,因为id
参数引用了容器(库):{{ 1}}。它不受支持,而是嵌入链接应指向文件
该问题很可能是由于sites/nameOfTheSite/DocLibName
造成的:
itemId
在您的示例中,似乎是指库而不是文件。确保指定了正确的https://graph.microsoft.com/beta/drives/<DriveID>/items/<DocumentID>/preview
^^^^^^^^^^^^
。
例如,itemId
端点返回以下有效负载:
https://graph.microsoft.com/v1.0/me/drive/recent
其中
{
"value" : {
//another properties are omitted for a clarity
//...
"remoteItem": {
"id": "01ECKZLCWSR7F76B64KZFL7I3QGZVPJELU"
//...
"parentReference": {
"driveId": "b!79yKq-2MdkSDnQ7_1Pf3FOkRyDCajpRIvqtA7UrsEO-vu3D_qkpaT50Y6CMcSmFv",
"driveType": "documentLibrary",
"id": "01ECKZLCV6Y2GOVW7725BZO354PWSELRRZ"
},
}
}
}
-对应于文件的项目ID remoteItem.Id
-对应于驱动器ID 不要与
remoteItem.parentReference.driveId
混淆 到图书馆的商品ID