OneDrive for Business Oauth2与REST

时间:2015-10-06 13:48:29

标签: onedrive

我有portal.office.com帐户,并希望通过我的REST应用程序访问tenant-my.sharepoint.com上的OneDrive for business。 我已在Azure Active Directory中注册了我的应用程序并启动了Oauth2身份验证,如下所示:

https://login.windows.net/common/oauth2/authorize?response_type=code&client_id=' + App.Key +'& redirect_uri = http://localhost:8889/';

在这个阶段,我从azure获得了AuthCode,下一阶段就是获得会话令牌。

作为身份验证的下一步,我正在向https://login.windows.net/common/oauth2/token发送POST请求 与params: ' CLIENT_ID =' + App.Key +' client_secret =' + App.Secret +'代码=' + AuthCode +' redirect_uri = http://localhost:8889/' +' grant_type = authorization_code' +'资源=' + URLEncode(' syncovery1');

不幸的是我收到错误回复: {"错误":" invalid_resource"," error_description":" AADSTS50001:在名为konnov.onmicrosoft.com的租户中找不到名为syncovery1的应用程序。如果租户的管理员尚未安装应用程序或租户中的任何用户同意该应用程序,则会发生这种情况。您可能已将您的身份验证请求发送给错误的租户。\ r \ nTrace ID:1af2ced2-b2bb-4568-8a87-bd2d1186cf9a \ r \ n相关ID:15dcda2c-0599-4279-8744-27c61e6912a9 \ r \ n时间戳:2015-10 -06 07:46:03Z"," error_codes":[50001]," timestamp":" 2015-10-06 07:46:03Z" " trace_id的":" 1af2ced2-b2bb-4568-8a87-bd2d1186cf9a"" CORRELATION_ID":" 15dcda2c-0599-4279-8744-27c61e6912a9&# 34;}'

请建议可能的解决方案。在我的portal.office.com帐户中,我找不到第三方应用程序可能与该帐户关联的任何地方。你能猜出“资源”的含义吗?最后一个请求中的param? portal.office.com中的哪些服务或许可证应该是活动的以允许身份验证?也许我只是没有激活OneDriveForBusiness订阅?

提前致谢,

1 个答案:

答案 0 :(得分:0)

请求中的资源表示您要在特定租户中访问的资源。因此,资源应该是您在azure广告(“非应用名称”)中注册的应用ID 。如果'syncovery1'是应用程序的名称,则返回错误。还有一点要添加,不要对资源进行编码,因为端点可能无法识别它。并且

例如,如果要获取office365的所有资源端点,那么资源将是 - _https://api.office.com/discovery/。

同样,如果我的应用程序的App ID是_https://mydrive.sharepoint.com/,并将应用程序名称注册为“mydrivesync”,则该资源应为_https://mydrive.sharepoint.com/。

关注此official documentation以获取完整的详细信息。