office 365 onedrive - 获取文件未经身份验证的错误

时间:2015-02-24 11:22:59

标签: office365 onedrive unauthorized

我正在为客户开发一个目标C的ios应用程序。它涉及onedrive(sharepoint)的office 365 api使用。我正在使用来自github的OfficeDev / Office-365-SDK-for-iOS库。 azure已正确设置为办公室365.应用程序设置为azure与所有权限。但是我不是管理员。

通过该应用程序,我可以登录onedrive并可以获取令牌。 使用“https://api.office.com/discovery/me/services”,我可以获取服务。 但是当我尝试使用“https://xxx-my.sharepoint.com/_api/v1.0/me/files/root1/”获取文件时,我收到以下错误:

错误:

getFiles错误:错误域=请求代码中的错误= 403“操作无法完成。(请求错误403中的错误。)”UserInfo = 0x170260980 {error = {     code =“ - 2147024891,System.UnauthorizedAccessException”;     message =“访问被拒绝。您无权执行此操作或访问此资源。”; }}

任何人都可能面临这样的问题..

1 个答案:

答案 0 :(得分:0)

您已拥有的访问令牌仅用于服务发现。您需要获取特定服务的访问令牌。有关详细信息,请参阅https://msdn.microsoft.com/en-us/office/office365/howto/discover-service-endpoints

所以,基本上你需要再执行一次请求:

POST https://login.microsoftonline.com/common/oauth2/token 
{
  'grant_type': 'refresh_token',
  'client_id': <your client_id>,
  'client_secret': <your client_secret>,
  'refresh_token': <refresh token that you already have>,
  'resource': <resource_id of resource you want to access>
}

它将返回可用于访问特定服务API的访问令牌。