Я создал приложение на портале Azure и предоставил разрешения на чтение данных пользователя и почты пользователя. Но я получаю 401 несанкционированную ошибку при попытке получить список писем.
В соответствии с делом c, разрешения, которые мне нужны для приложения: Mail.ReadBasi c .All, Mail.Read, Mail.ReadWrite. Я предоставил все это, но все еще получаю ошибку.
В do c не упоминается, поддерживается ли личная учетная запись для этого или нет в разрешении типа приложения.
/// get access token
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("https://login.microsoftonline.com/");
var stringContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("client_id", ClientID),
new KeyValuePair<string, string>("scope", "https://graph.microsoft.com/.default"),
new KeyValuePair<string, string>("client_secret", ClientSecret),
new KeyValuePair<string, string>("grant_type", "client_credentials"),
});
var response = httpClient.PostAsync(TenantID + "/oauth2/v2.0/token", stringContent).GetAwaiter().GetResult().Content.ReadAsStringAsync().GetAwaiter().GetResult();
var auth_res_json = JObject.Parse(response);
var token = auth_res_json["access_token"].ToString();
/// now read user data
HttpClient httpClient2 = new HttpClient();
httpClient2.BaseAddress = new Uri("https://graph.microsoft.com/v1.0/");
httpClient2.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response2 = httpClient2.GetAsync("users/" + UserID + "/messages").GetAwaiter().GetResult();
var mails = JObject.Parse(response2.Content.ReadAsStringAsync().GetAwaiter().GetResult());
Обратите внимание, что я правильно получаю токен доступа, никаких проблем с этим нет. Кроме того, я могу получить пользовательские данные, используя httpClient2.GetAsync("users/" + UserID)
правильно, ошибок тоже нет, и результаты хорошие.
Предоставленные мной разрешения:
Добавлены области:
![enter image description here](https://i.stack.imgur.com/QHHBq.png)
И я добавил эти области в свое приложение:
![enter image description here](https://i.stack.imgur.com/qJhAv.png)