2015-07-17 3 views
2

I Успешно Реализовано шаг авторизации, и я получил значение кода с помощью redirect_uri. и в то время как реализация FitBit OAuth маркер доступа Request (https://wiki.fitbit.com/display/API/OAuth+2.0) я получаю следующее сообщение об ошибке:FitBit OAuth 2.0 Access_token, в результате чего отсутствует значение параметра параметра grant_type

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 является authorization_code Accesstoken_uri: https://api.fitbit.com/oauth2/token

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

+0

Я вижу орфографическую ошибку в вашем коде. '& grand_type' должен быть '& grant_type'. Это может быть вопрос – amishra

+0

Я исправил эту орфографическую ошибку, хотя я получаю такую ​​же ошибку. Значение grant_type - authorization_code для OAuth 2.0? Если нет, то каково значение grant_type. –

ответ

1

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

+0

Спасибо, что это сработало для меня –