【问题标题】:Microsoft Graph API - /drive/root/children always empty, even though I have files in my onedriveMicrosoft Graph API - /drive/root/children 始终为空,即使我的 onedrive 中有文件
【发布时间】:2017-08-07 14:28:14
【问题描述】:

我正在尝试使用 Microsoft Graph API 到 List Children by Getting access without a user

我已经按照您的预期建立了我的网址:

https://graph.microsoft.com/v1.0/edffcd1c-e5b2-42f2-b554-XXXXXXXXX/drive/root/children

edffcd1c-e5b2-42f2-b554-XXXXXXXXX 是我试图列出文件的用户 ID。

然而,当我调用它时,每次都会得到一个空结果:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drive/root/children",
    "value": []
}

这是为什么呢?

更新:这个 API 似乎只从 Sharepoint 帐户返回文件...而不是 OneDrive 帐户。我已经可以从 Sharepoint API 本身访问 Sharepoint 文件。有没有办法从 Microsoft Graph API 获取 OneDrive 文件?

这个 URL https://dev.onedrive.com/README.htm 似乎表明我们应该能够做到这一点。

【问题讨论】:

  • 您是否尝试过使用userPrincipalName 而不是id?例如:/users/rgregg@contoso.com/drive/root/children.
  • 是的,这只是让它抛出错误“找不到该段的资源”。我和微软谈过......这个api只支持通过app-only用户共享点文件我猜。总垃圾

标签: rest microsoft-graph-api onedrive


【解决方案1】:

有没有办法从 Microsoft Graph API 获取 OneDrive 文件?

是的,有:你必须使用范围Files.Read.AllFiles.ReadWrite.All

那么,您对/drive/root/children 的请求将不再返回空数组。

【讨论】:

    【解决方案2】:

    我只是在用户中有一个错字:

    https://graph.microsoft.com/v1.0/edffcd1c-e5b2-42f2-b554-XXXXXXXXX/drive/root/children

    应该是

    https://graph.microsoft.com/v1.0/users('edffcd1c-e5b2-42f2-b554-XXXXXXXXX')/drive/root/children

    【讨论】:

      【解决方案3】:

      您也可以使用此端点 https://graph.microsoft.com/v1.0/me/drive/root/children

      并传递授权头 Bearer Token

      【讨论】:

      • 不是我现有的答案更容易,因为您可以只提供用户 ID 并使用相同的服务帐户令牌获取用户的文件?无论哪种方式,感谢您的详细信息。
      【解决方案4】:

      有两件事:

      1) 首先检查用户是否给了权限

      Files.Read.All 或 Files.ReadWrite.All

      2) 以下端点不适用于企业帐户

      /驱动器/根/孩子

      我改成

      /drives/{drive_id}/root/children

      而且效果很好。请检查。

      【讨论】:

        猜你喜欢
        • 2021-04-27
        • 1970-01-01
        • 2018-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-13
        相关资源
        最近更新 更多