One Drive API会返回无效的访问令牌

时间:2016-11-23 03:52:27

标签: onedrive

验证过程现在无法正常工作。(它之前的工作正常)。通过遵循文档,我试图从刷新令牌获取访问令牌。我成功地获得了访问令牌。但它无效。我将其设置为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是否为我提供了无效的访问令牌,或者我的代码中出了什么问题?

0 个答案:

没有答案