如何使用Service to Service oauth2身份验证对OneDrive for Business进行身份验证?

时间:2016-03-16 15:58:25

标签: api onedrive

OneDrive for Business教程(此处:https://dev.onedrive.com/auth/aad_oauth.htm

但是,我不希望用户必须登录,因为我正在构建一个Web API - 我希望该应用程序能够登录。所以,我已经按照服务认证教程(这里:https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx)来获取访问令牌。

但是,当我尝试使用该服务进行身份验证时,我收到错误消息“不支持的应用程序仅令牌”。我正在使用的代码如下(顺便说一下,我正在使用RestSharp):

public string GetAccessToken()
    {
        var client = new RestClient("https://login.microsoftonline.com/<tenant>/oauth2");
        var request = new RestRequest("token", Method.POST);

        request.AddParameter("grant_type", "client_credentials");
        request.AddParameter("client_id", <client_id>);
        request.AddParameter("client_secret", <client_secert);
        request.AddParameter("resource", "https://<tenant>-my.sharepoint.com/");


        var response = client.Execute(request);
        var content = response.Content;
        var authModel = JsonConvert.DeserializeObject<AuthResponseModel>(content);

        return authModel.AccessToken;
    }

这会让我获得访问令牌

这是我尝试访问我的驱动器的方式:

    public string GetDrive()
    {

        var accessToken = GetAccessToken();

        var client = new RestClient("https://<tenant>-my.sharepoint.com/_api/v2.0/");
        var request = new RestRequest("drive", Method.GET);

        request.AddHeader("Authorization: Bearer", accessToken);

        var response = client.Execute(request);
        var content = response.Content;

        return content;
    }

有没有人有任何提示?这有点令人抓狂。

0 个答案:

没有答案