首页 > 解决方案 > Azure Graph API / OneDrive API 访问读取文件(列表和下载)所需的 SPO 意味着什么

问题描述

我曾假设 OneDrive 提供免费的个人存储层,因此对 OneDrive 的 API 访问不应该要求用户拥有 Office 365 订阅......

但是,经过几个小时的调试,直接去找Postman,在尝试调用: https://graph.microsoft.com/v1.0/me/drive/root/search(q='.obj')?select=name,id,@content.downloadUrl使用令牌后,返回的错误似乎是用户没有SPO,这似乎意味着需要Office365订阅?

{
  "error": {
    "code": "BadRequest",
    "message": "Tenant does not have a SPO license.",
    "innerError": {
      "request-id": "270808a8-4763-4ada-a878-e5ff34571c2f",
      "date": "2020-02-20T06:08:52"
    }
  }
}

有没有不需要 Office 就可以通过 API 访问 OneDrive 的方法?

更新,刚买了Office 365……这个错误还是出现……SPO许可到底是什么意思?

标签: azuresharepointmicrosoft-graph-apionedriveoffice365api

解决方案


您使用什么用户上下文连接到Microsoft Graph OneDrive API?该用户是否在https://admin.microsoft.com/中获得了正确许可?

要消除用户访问令牌的问题,您可以转到 Graph Explorer https://aka.ms/ge并使用用户帐户在左侧登录。然后运行这个确切的查询。您需要根据 API 文档同意正确的权限才能调用此 API。

因为您在此处使用 SharePoint 搜索功能,所以这不仅仅是 OneDrive,而是需要的 SharePoint。我相信这是 E3 和 E5 附带的,但我不是许可专家。

该用户能否在 Web 浏览器中访问租户内的根 SharePoint 产品?


推荐阅读