Я не могу получить доступ к конечным точкам на графике Microsoft.
Я буду загружать файл на один диск пользователей, когда у меня настроена связь, но сейчас я просто пытаюсь получить список элементов в диск.
Это ответ, который я получаю от https://graph.microsoft.com/v1.0/drives/ {{drive_id}} / root / children
{
"error": {
"code": "AccessDenied",
"message": "Either scp or roles claim need to be present in the token.",
"innerError": {
"request-id": "123",
"date": "2020-01-09T11:43:20"
}
}
}
Я получил drive_id с помощью проводника графика в конечной точке https://graph.microsoft.com/v1.0/me/ вошедшего в систему пользователя.
Следует отметить, что я могу использовать эту конечную точку https://graph.microsoft.com/v1.0/subscriptions Так что я должен что-то делать правильно с токен доступа.
Я следовал этому руководству, чтобы получить токен доступа, используя поток учетных данных клиента.
и это код, который я использую для получения токена доступа
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-
form-urlencoded"));
var req = new HttpRequestMessage(HttpMethod.Post, $"https://login.microsoftonline.com/<tenant>/oauth2/token");
req.Content = new FormUrlEncodedContent(new Dictionary<string, string>
{
{"grant_type", "client_credentials"},
{"client_id", "123"},
{"client_secret", "123"},
{"resource", "https://graph.microsoft.com"}
});
Когда я декодирую JWT, я не вижу областей в токене, но если я правильно понимаю, заголовок должен получить области, разрешенные администратором.
Администратор уже предоставил моему приложению эти разрешения для графического обозревателя: (Хотя у меня нет разрешений для делегатов, это имеет значение?)
Filse.Read,
Files.ReadWriteAll,
Sites.ReadWtiteAll,
User.Read
Я использую эту коллекцию в почтальоне для тестирования.
Спасибо заранее за любые советы.