1

我正在尝试使用 MSAL 令牌连接到 OneDrive,但它返回 error="invalid_token", error_description="Auth error"

这是我的代码:

    public static string[] Scopes = { "User.Read", "Files.Read", "Sites.Read.All" };
    AuthenticationResult ar = await App.ClientApplication.AcquireTokenSilentAsync(Scopes);
    WelcomeText.Text = $"Welcome {ar.User.Name}"; //Login OK here

        //get data from API
        HttpClient client = new HttpClient();
        HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, "https://api.onedrive.com/v1.0/drives");
        message.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", ar.Token);
        HttpResponseMessage response = await client.SendAsync(message);
        string responseString = await response.Content.ReadAsStringAsync();

有人知道我在做什么错吗?

4

2 回答 2

1

直接 API 端点 (api.onedrive.com) 不支持从 MSAL 生成的访问令牌,仅支持从 MSA 生成的令牌。如果您使用 MSAL,则应使用Microsoft Graph API (graph.microsoft.com) 来访问个人和企业用户的 OneDrive 文件。

于 2016-07-26T20:16:25.190 回答
0

您已经得到了很长时间的答案,但我希望此链接将来对其他人有所帮助。 https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/onedrive

于 2018-01-22T22:30:25.690 回答