refreshToken static method
Future<FitbitCredentials>
refreshToken({
- required String clientID,
- required String clientSecret,
- required FitbitCredentials fitbitCredentials,
Method that refreshes the Fitbit access token and returns the new, refreshed FitbitCredentials
.
Implementation
static Future<FitbitCredentials> refreshToken(
{required String clientID,
required String clientSecret,
required FitbitCredentials fitbitCredentials}) async {
// Instantiate Dio and its Response
Dio dio = Dio();
Response response;
// Generate the fitbit url
final fitbitUrl = FitbitAuthAPIURL.refreshToken(
clientID: clientID,
clientSecret: clientSecret,
fitbitCredentials: fitbitCredentials);
// Post refresh query to Fitbit API
response = await dio.post(
fitbitUrl.url,
data: fitbitUrl.data,
options: Options(
contentType: Headers.formUrlEncodedContentType,
headers: {
'Authorization': fitbitUrl.authorizationHeader,
},
),
);
// Debugging
final logger = Logger();
logger.i('$response');
// Overwrite the fitbit credentials and return them
final accessToken = response.data['access_token'] as String;
final refreshToken = response.data['refresh_token'] as String;
return fitbitCredentials.copyWith(
fitbitAccessToken: accessToken, fitbitRefreshToken: refreshToken);
}