首页 文章

使用Microsoft Graph的OneDrive for Business缩略图

提问于
浏览
0

我使用https://graph.microsoft.com/v1.0/me/drive/root/microsoft.graph.search endpoints 成功从用户的OneDrive for Business帐户返回搜索结果 .

我在我们的应用程序中使用联合搜索中的这些结果,并希望使用api在可用时为每个项目呈现缩略图 .

我有一个https://graph.microsoft.com资源的访问令牌,除缩略图外一切正常 .

我可以恢复缩略图集合数据,例如:

[small] =>数组(

[身高] => 350

[宽度] => 266

[url] => https://xxxxxxxxxxx-my.sharepoint.com/personal/xxxxxxxxxxxxxxxxx_onmicrosoft_com/_api/v2.0/drive/items/ / thumbnails / 0 / small / thumbnailContent)

任何尝试直接在img标记中或通过curl返回错误来访问该thumbnailContent url . 对于卷曲,我在 Headers 中提供访问令牌 .

我收到错误信息,如:

HTTP / 1.1 403

X-MSDAVEXT_Error:917656;拒绝访问 . 在此位置%2c中打开文件之前,您必须先浏览到该网站并选择自动登录的选项 .

{“error”:{“code”:“ - 2147024891,System.UnauthorizedAccessException”,“message”:“访问被拒绝 . 您无权执行此操作或访问此资源 . ”}}

在解决此处所需的内容时,我们将不胜感激 .

我已经读过我可能需要一个sharepoint令牌而不是图形令牌 . 如果是这种情况,我似乎无法弄清楚如何获取我需要请求必要的sharepoint令牌的资源ID .

谢谢 .

1 回答

  • 0

    图形开发人员向我们保证,根据此处发布的问题(我已经开始)github.com/OfficeDev/microsoft-graph-docs/issues/135,未提供的缩略图URL即将到来 . 与此同时,您可以按照我在那里提到的解决方法进行操作,看起来您需要为onedrive API提供访问令牌,这与Graph API的访问令牌不同 . 您应该查看相关的OneDrive API documentation,但我认为这可以归结为您正在寻找的"resource ID"只是OneDrive的基本URL,例如 https://contoso-my.sharepoint.com/ . 实际上,你可以从缩略图URL本身解析它 . 如果您碰巧是通过JavaScript完成所有这些,那么我还没有 .

    您应该能够使用OneDrive API访问令牌来生成thumbnailContent请求 . 如果您请求 responseType blob ,则可以使用 FileReader.readAsDataURL (再次假设您使用的是JavaScript)来获取可以位于图像标记中的数据URL .

    自从我看了这一切以来已经有一段时间了,但这是我在发布该问题链接时工作的解决方法 . 希望能帮助到你 .

相关问题