Wenn Sie von der alten Fitbit Web API zur Google Health API migrieren, wechseln Sie von allgemeinen OAuth2-Bibliotheken zur Google Auth Library. Im Folgenden finden Sie einen Architekturvorschlag und eine Pseudocode-Implementierung in JavaScript, um diesen „Dual-Library“-Zustand zu verwalten.
1. Der „Middleware-Switch“
Da Sie nicht alle Nutzer gleichzeitig migrieren können, muss Ihr Backend anhand der apiVersion des Nutzers, die in Ihrer Datenbank gespeichert ist, ermitteln, welche Bibliothek verwendet werden soll.
Implementierung
const { OAuth2Client } = require('google-auth-library');
const FitbitV1Strategy = require('fitbit-oauth2-library').Strategy;
// 1. Initialize the Google Health API Client
const GHAClient = new OAuth2Client(
process.env.GOOGLE_CLIENT_ID,
process.env.GOOGLE_CLIENT_SECRET,
process.env.REDIRECT_URI
);
// 2. Create a Unified Fetcher
async function fetchSteps(user) {
if (user.apiVersion === 4) {
// ---- GOOGLE OAUTH LIBRARY LOGIC ----
GHAClient.setCredentials({ refresh_token: user.refreshToken });
const url = 'GET https://health.googleapis.com/v4/users/me/dataTypes/steps/dataPoints';
const res = await GHAClient.request({ url });
return res.data;
} else {
// ---- FITBIT WEB API LEGACY LOGIC ----
// Use your existing Fitbit open-source library logic here
return callLegacyV1Api(user.accessToken);
}
}
2. UX-Ablauf migrieren
Verwenden Sie das Muster „Unterbrechen und aktualisieren“, um die Kundenbindung zu maximieren. So muss sich der Nutzer erst dann neu anmelden, wenn er die App bereits verwendet.
Umleitungslogik
Wenn ein Nutzer der Fitbit Web API eine bestimmte Funktion verwendet, lösen Sie die Migration aus:
app.get('/dashboard', async (req, res) => {
const user = await db.users.find(req.user.id);
if (user.apiVersion === 1) {
// Render a "soft" migration page explaining the Google transition
return res.render('migrate-to-google', {
title: "Keep your data syncing",
message: "Fitbit is moving to Google accounts. Re-connect now to stay updated."
});
}
const data = await fetchSteps(user);
res.render('dashboard', { data });
});
3. Wichtige technische Umstellungen
Beachten Sie beim Schreiben Ihrer JavaScript-Migrationsskripts die folgenden Unterschiede:
| Feature | Fitbit Web API (alt) | Google Health API (Google-Identität) |
| Token-Endpunkt | https://api.fitbit.com/oauth2/token | https://oauth2.googleapis.com/token |
| Auth-Bibliothek | Standard-Open-Source | Google Auth |
| Umfang | Aktivität | https://www.googleapis.com/auth/googlehealth.activity_and_fitness |
| Nutzer-ID | In /oauth2/token-Antwort zurückgegebene codierte Fitbit-ID | Vom Endpunkt users.getIdentity zurückgegebene Nutzer-ID |
4. Checkliste zur Kundenbindung
- Sitzungspersistenz: Löschen Sie die alte Fitbit Web API Sitzung des Nutzers erst, wenn das access_token der Google Health API erfolgreich bestätigt und in Ihrer Datenbank gespeichert wurde.
- Automatisch widerrufen: Wenn die Migration zur Google Health API abgeschlossen ist, senden Sie eine POST-Anfrage an den alten Fitbit-Endpunkt zum Widerrufen: https://api.fitbit.com/oauth2/revoke. So werden dem Nutzer in den Fitbit-Einstellungen keine doppelten App-Berechtigungen angezeigt.
- Fehlerbehandlung: Wenn ein Fitbit-Aufruf den Fehlercode 401 (Nicht autorisiert) zurückgibt, leiten Sie den Nutzer automatisch zum Google OAuth-Ablauf weiter, anstatt eine Fehlermeldung anzuzeigen.