Использовать MS Graph API в Azure Active Directory: C # и Почтальон - PullRequest
0 голосов
/ 16 октября 2019

Я новичок в MS Graph API и пытался получить элементы списка SharePoint с помощью MS Graph, зарегистрированного в Azure AD. Я смог получить токен доступа, передав следующие параметры (client_id, client_secret, resource, author), поэтому проблема заключается в запуске URL-адреса api: https://graph.microsoft.com/v1.0/sites/{{site-id}}/lists/{{list-id}}/items?$Select=Id&$expand=fields($select=Title) в Postman (при передаче токена Bearer-access в Header).

Я получил следующую ошибку, в которой говорилось, что " В токене должно присутствовать утверждение scp или заявление о роли. Было бы здорово, если бы вы помогли мне найти правильное решение, так как я пытаюсьпотреблять API с использованием C # и получал следующую ошибку, утверждая, что " 403-Forbidden "

using (var client = new HttpClient())
{
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/sites/{{site-id}}/lists");
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
var response = client.SendAsync(request).Result;


//var result = requestTask.Result;
if (response.IsSuccessStatusCode)
{
  var readTask = response.Content.ReadAsStringAsync();
  readTask.Wait();
  Console.WriteLine("Response:" + readTask);
}

}

1 Ответ

0 голосов
/ 17 октября 2019

Когда вы получаете коллекцию предметов в списке , вам необходимо иметь следующее разрешение.

enter image description here

И соответственнона предоставленное вами изображение разрешение приложения Sites.Read.All и Sites.ReadWrite.All не дает согласия, поэтому в нем отображаются желтые предупреждения. Правильный статус приведен ниже:

enter image description here

Вам необходимо дать согласие администратора на это разрешение, а затем расшифровав токен доступа, вы увидите разрешение приложенияв role претензии.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...