如何从MS Graph获取工作文档预览链接



我正在尝试通过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

最新更新