Microsoft graph api 承租人没有SPO许可证
尝试使用Microsoft Graph编写脚本将Excel文件上载到OneDrive,然后读取Excel文件时出错 我跟随以获得无用户的访问令牌。我成功获取了访问令牌,但在使用访问令牌调用OneDrive API时出错 以下是答复:Microsoft graph api 承租人没有SPO许可证,microsoft-graph-api,onedrive,Microsoft Graph Api,Onedrive,尝试使用Microsoft Graph编写脚本将Excel文件上载到OneDrive,然后读取Excel文件时出错 我跟随以获得无用户的访问令牌。我成功获取了访问令牌,但在使用访问令牌调用OneDrive API时出错 以下是答复: { “错误”:{ “代码”:“BADDREQUEST”, “消息”:“租户没有SPO许可证。”, “内部错误”:{ “请求id”:“5ec31d17-3EAA-469f-9078-de3608f11d0d”, “日期”:“2017-10-10T04:34:05” }
{
“错误”:{
“代码”:“BADDREQUEST”,
“消息”:“租户没有SPO许可证。”,
“内部错误”:{
“请求id”:“5ec31d17-3EAA-469f-9078-de3608f11d0d”,
“日期”:“2017-10-10T04:34:05”
}
}
}
我不明白为什么调用graph API时需要SPO许可证,以及如何获得它。由于此错误消息,所以我正在尝试购买SPO许可证
根据,我认为我应该在许可证页面中看到许多产品,但在使用Azure Portal登录并转到许可证页面时,我只看到两种产品:Azure AD Premium和Enterprise Mobility Suite:
OneDrive for Business和Excel API都需要Office 365。根据您的屏幕截图,这看起来像一个独立的Azure Active Directory租户(即未链接到O365)
出现SPO许可证消息的原因是OneDrive for Business是一个特殊的SharePoint联机文档库,可自动为用户配置 在这里回答几个问题 背景:Microsoft Graph是许多Microsoft云服务的开发者网关或API,如Office 365、Azure Active Directory、EMS(企业移动套件)、personal Outlook、personal OneDrive等。API的使用是免费的,但要访问其背后的数据,您需要实际拥有这些服务——在某些情况下,它们可能是免费的,在其他情况下,您可能需要为它们付费 至于将Office 365添加到现有租户中。我相信您已使用Microsoft帐户注册Azure。这意味着您已经拥有Azure Active Directory租户。您仍然可以为该租户购买/获取Office 365。您只需在租户中创建一个新的Azure AD用户(而不是Microsoft帐户),并将其设置为公司管理员。然后,您应该能够注册Office 365-如果它询问您是否已经有租户或帐户,请使用您刚刚创建的AAD帐户登录。瞧,你应该有一个Azure广告租户,订阅了Azure,现在又订阅了Office 365
希望这有帮助,如果其他人也有类似问题,我在使用Office 365 Home许可证时会收到相同的错误消息。原来SPO代表SharePoint Online,您需要一个Office 365业务帐户才能拥有它。因此,据我所知,如果没有SharePoint(仅附带商业许可证),您无法使用Microsoft Graph API访问OneDrive。这在我能找到的任何地方都不清楚。如果其他人有类似的问题,我在使用个人Microsoft帐户时会收到相同的错误消息,就像OP一样 因此,如果您在已注册的Azure Active Directory(AAD)应用程序中使用个人帐户,则该类型不只是
个人Microsoft帐户
或任何组织目录(任何Azure AD目录-Multitenant)中的帐户和个人Microsoft帐户(例如Skype、Xbox)
,您将收到此错误。此外,您需要使用正确的端点来避免错误
主要问题是我们的帐户类型。作为个人帐户,访问一个驱动器文件有一些限制。这些限制是:
Oauth2代码流
或Oauth2令牌流
。这两种方法都是交互式的。[][]个人Microsoft帐户
或任何组织目录(任何Azure AD目录-Multitenant)中的帐户和个人Microsoft帐户(例如Skype、Xbox)
,并且每个帐户都有不同的端点来获取访问令牌(您可以看到单击应用程序页面中“删除应用程序”按钮附近的端点
按钮)。[]文件.Read
、文件.Read.All
、文件.ReadWrite
和文件.ReadWrite.All
个人Microsoft帐户的端点
应用程序类型和使用Oauth2代码流
):
重要提示:要使用代码流,您需要在Authentication ADD app侧栏菜单上的隐式授权和混合流中启用访问令牌。
https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize?client_id=YOUR_CLIENT_ID&response_type=token&redirect_uri=ONE_OF_REGISTERED_REDIRECT_URI&scope=Files.Read Files.Read.All Files.ReadWrite Files.ReadWrite.All
https://graph.microsoft.com/v1.0/me/drive/root/children
Add a new header:
Authorization
With value:
Bearer ACCESS_TOKE_OF_STEP_1