验证过程现在无法正常工作。(它之前的工作正常)。通过遵循文档,我试图从刷新令牌获取访问令牌。我成功地获得了访问令牌。但它无效。我将其设置为Bearer并在我的GET请求中发送它并返回以下JSON
{"error":{"code":"accessDenied","message":"Access Denied"}}
以下是代码示例
String messageBody = "client_id=" + "9b1a6dbb-7e1f-41b5-b448-9f328169411e" + "&redirect_uri=" + returnURL + "&client_secret={cleindsecret}
+ "&refresh_token={refreshtoken}&grant_type=refresh_token";
RequestBody oAuthCodeRedeemBody = RequestBody.create(MediaType.parse("application/x-www-form-urlencoded"),
messageBody);
Request request = new Request.Builder().url("https://login.live.com/oauth20_token.srf")
.post(oAuthCodeRedeemBody).build();
String responseBody = null;
OkHttpClient client = new OkHttpClient();
client.setFollowRedirects(false);
Response response;
String accessToken = null;
try {
response = client.newCall(request).execute();
responseBody = response.body().string();
resp = (JSONObject) jsonParser.parse(responseBody);
} catch (IOException | ParseException e) {
e.printStackTrace();
}
accessToken = (String) resp.get("access_token");
我在这里获得了访问令牌。但我不能用它来做任何工作。
Request request2 = new Request.Builder().url("https://api.onedrive.com/v1.0/drive/items/1ED8983F38E94F01!107/children").header("Authorization", "Bearer " + accessToken).get().build();
上述代码的响应以
的形式返回{"error":{"code":"accessDenied","message":"Access Denied"}}
这是什么原因。 API是否为我提供了无效的访问令牌,或者我的代码中出了什么问题?