我正在尝试通过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
端点的响应应该返回一个工作网址。我是否必须在 O365 上进行一些配置?
非常感谢
链接(preview
)在您的示例中看起来无效id
因为参数引用容器(库):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"
},
}
}
}
哪里
-
remoteItem.Id
- 对应于文件的项 ID -
remoteItem.parentReference.driveId
- 对应于驱动器 ID
不要与对应的
remoteItem.parentReference.Id
混淆 到图书馆的项目 ID