07-09-2015 02:09
07-09-2015 02:09
When I request a new 'access token' using the 'refresh token' I got before, it gets invalidated, so I'm forced to record not only the 'access token' I am requesting, but also a new 'refresh token'. Is this ok? Am I doing something wrong?
This is the specific part of code of my request. FYI (I colored in red what I have to do but not expected to do)
OAuthClientRequest request = OAuthClientRequest
.tokenLocation(getApiBaseUrl() + "/oauth2/token")
.setGrantType(GrantType.REFRESH_TOKEN)
.setRefreshToken(tokens.getRefreshToken())
.buildBodyMessage();
String asB64 = Base64.getEncoder().encodeToString(
(fitbitClientId + ":" + fitbitClientConsumerSecret)
.getBytes("utf-8"));
request.setHeader("Authorization", "Basic " + asB64);
OAuthClient oAuthClient = new OAuthClient(new URLConnectionClient());
OAuthResourceResponse resourceResponse = oAuthClient
.resource(request, OAuth.HttpMethod.POST,
OAuthResourceResponse.class);
if (resourceResponse.getResponseCode() == HttpServletResponse.SC_OK) {
JSONObject jsonObject = new JSONObject(
resourceResponse.getBody());
tokens.setAccessToken(jsonObject.get("access_token").toString());
tokens.setRefreshToken(jsonObject.get("refresh_token").toString());Thanks!
07-13-2015 17:19
Fitbit Developers oversee the SDK and API forums. We're here to answer questions about Fitbit developer tools, assist with projects, and make sure your voice is heard by the development team.
07-13-2015 17:19
The refresh token can only be used once. When you exchange it for a new access token, a new refresh token is also granted.
Best Answer