mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
Withings - Use new OAuth2 API to get access and refresh tokens
Fixes #4152
This commit is contained in:
@@ -328,10 +328,11 @@ OAuthDialog::urlChanged(const QUrl &url)
|
||||
|
||||
} else if (site == WITHINGS) {
|
||||
|
||||
urlstr = QString("https://account.withings.com/oauth2/token?");
|
||||
urlstr = QString("https://wbsapi.withings.net/v2/oauth2");
|
||||
params.addQueryItem("client_id", GC_NOKIA_CLIENT_ID);
|
||||
params.addQueryItem("client_secret", GC_NOKIA_CLIENT_SECRET);
|
||||
params.addQueryItem("redirect_uri","https://www.goldencheetah.org");
|
||||
params.addQueryItem("action", "requesttoken");
|
||||
params.addQueryItem("grant_type", "authorization_code");
|
||||
|
||||
}
|
||||
@@ -453,6 +454,10 @@ OAuthDialog::networkRequestFinished(QNetworkReply *reply)
|
||||
access_token = document.object()["access_token"].toString();
|
||||
if (site == POLAR) polar_userid = document.object()["x_user_id"].toDouble();
|
||||
if (site == RIDEWITHGPS) access_token = document.object()["user"].toObject()["auth_token"].toString();
|
||||
if (site == WITHINGS) {
|
||||
refresh_token = document.object()["body"].toObject()["refresh_token"].toString();
|
||||
access_token = document.object()["body"].toObject()["access_token"].toString();
|
||||
}
|
||||
}
|
||||
|
||||
// if we failed to extract then we have a big problem
|
||||
|
||||
@@ -85,12 +85,13 @@ WithingsDownload::getBodyMeasures(QString &error, QDateTime from, QDateTime to,
|
||||
|
||||
QString refresh_token = appsettings->cvalue(context->athlete->cyclist, GC_NOKIA_REFRESH_TOKEN).toString();
|
||||
|
||||
postData.addQueryItem("action", "requesttoken");
|
||||
postData.addQueryItem("grant_type", "refresh_token");
|
||||
postData.addQueryItem("client_id", GC_NOKIA_CLIENT_ID );
|
||||
postData.addQueryItem("client_secret", GC_NOKIA_CLIENT_SECRET );
|
||||
postData.addQueryItem("refresh_token", refresh_token );
|
||||
|
||||
QUrl url = QUrl( "https://account.withings.com/oauth2/token" );
|
||||
QUrl url = QUrl( "https://wbsapi.withings.net/v2/oauth2" );
|
||||
|
||||
emit downloadStarted(100);
|
||||
|
||||
@@ -110,9 +111,9 @@ WithingsDownload::getBodyMeasures(QString &error, QDateTime from, QDateTime to,
|
||||
QJsonParseError parseResult;
|
||||
QJsonDocument migrateJson = QJsonDocument::fromJson(response.toUtf8(), &parseResult);
|
||||
|
||||
access_token = migrateJson.object()["access_token"].toString();
|
||||
QString refresh_token = migrateJson.object()["refresh_token"].toString();
|
||||
QString userid = QString("%1").arg(migrateJson.object()["userid"].toInt());
|
||||
access_token = migrateJson.object()["body"].toObject()["access_token"].toString();
|
||||
QString refresh_token = migrateJson.object()["body"].toObject()["refresh_token"].toString();
|
||||
QString userid = QString("%1").arg(migrateJson.object()["body"].toObject()["userid"].toInt());
|
||||
|
||||
|
||||
if (access_token != "") appsettings->setCValue(context->athlete->cyclist, GC_NOKIA_TOKEN, access_token);
|
||||
|
||||
Reference in New Issue
Block a user