FitBit OAuth 2.0 Access_token приводит к отсутствующему значению параметра grant_type

Я успешно реализовал этап авторизации и получил значение кода с помощью redirect_uri. и при реализации запроса FitBit OAuth AccessToken (https://wiki.fitbit.com/display/API/OAuth+2.0) я получаю следующую ошибку:

WARN : org.apache.http.impl.client.DefaultHttpClient - Authentication error: Unable to respond to any of these challenges: {oauth=WWW-Authenticate: OAuth realm="https%3A%2F%2Fapi008-g4.prod.dal05.fitbit.com"}
{"errors":[{"errorType":"oauth","fieldName":"n/a","message":"invalid_request, Missing grant_type parameter value"}],"success":false}

в соответствии с документом я предоставил все рекомендуемые значения, и код выглядит так:

String authString = fitbit.getClient_id()+":"+fitbit.getClient_secret();
String authEncString = Base64.getEncoder().encodeToString(authString.getBytes());
url = fitbit.getAccesstoken_uri() + "?code="+code+"&grand_type="+fitbit.getGrant_type()+"&client_id="+fitbit.getClient_id()+
        "&redirect_uri="+fitbit.getRedirect_url();
String url3 = fitbit.getAccesstoken_uri();

HttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(url3);
request.addHeader("Authorization", "Basic " + authEncString);
request.addHeader("Content-Type","application/x-www-form-urlencoded");
request.addHeader("code", code);
request.addHeader("grant_type",fitbit.getGrant_type());
request.addHeader("client_id", fitbit.getClient_id());
request.addHeader("redirect_uri", fitbit.getRedirect_url());

    HttpResponse response = httpClient.execute(request);

    String json = EntityUtils.toString(response.getEntity(), "UTF-8");

Здесь значением grant_type является код авторизации Accesstoken_uri : https://api.fitbit.com/oauth2/token

Может ли кто-нибудь решить это?


person chandra sekhar lagadapati    schedule 17.07.2015    source источник
comment
Я вижу орфографическую ошибку в вашем коде. Вместо «&grant_type» должно быть «&grant_type». Это может быть проблемой   -  person amishra    schedule 17.07.2015
comment
Я исправил эту орфографическую ошибку, хотя я получаю ту же ошибку. Является ли значение grant_type значением author_code для OAuth 2.0? Если нет, то каково значение grant_type.   -  person chandra sekhar lagadapati    schedule 18.07.2015


Ответы (1)


Добавьте grant_type=authorization_code в качестве параметра тела вместо параметра заголовка. Вы также можете добавить идентификатор клиента и redirect_uri в качестве параметра тела.

person hybrid    schedule 01.09.2015