Ich habe ein Problem mit dem Senden Bearer Token an die One Note API.One Note Api lehnt Bearer Token ab, Fehler 401
String returnUri = "https://login.live.com/oauth20_token.srf";
HttpClient client = HttpClientBuilder.create().build();
HttpPost tokenRequest = new HttpPost(returnUri);
tokenRequest.setHeader(HttpHeaders.CONTENT_TYPE, "application/x-www-form-urlencoded");
tokenRequest.setEntity(new UrlEncodedFormEntity(Connection.getParametersForURLBody(), Consts.UTF_8));
tokenRequest.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0");
HttpResponse tokenResponse = client.execute(tokenRequest);
HttpGet getTopFiveNotebooks = new HttpGet("https://www.onenote.com/api/v1.0/me/notes/notebooks?top=5");
getTopFiveNotebooks.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + Connection.getValueByKey("access_token", Connection.getTokenInJson(tokenResponse)));
Ich habe die Bearer Token
und der Header des HttpGet-Request
sieht wie folgt aus, wenn ich es im Debug-Modus aussehen:
Aber wenn ich versuche, die get auszuführen, die API gibt mir einen 401 Unauthorized
Fehler.
Mein Bereich ist scope=wl.basic+onedrive.readwrite
, also sollte das Token alle Berechtigungen haben, die es benötigt.
Update: Wenn ich in https://apigee.com/onenote/embed/console/onenote/ melde dich mit meinem Microsoft-Konto und kopieren Sie die Zugriffstoken von dort in diesem Stück Code:
getTopFiveNotebooks.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + acces-key-from-the apigee-console)
führt sie die get und gib mir Status 200
zurück statt 401
.
Also ist mein Berechtigungsbereich falsch?
Bearbeiten: Mein Bereich war falsch.
haben Sie Lösung dieses Problems gefunden? –