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 in JavaScript geschriebene Pseudocode-Implementierung für diesen „Dual-Library“-Zustand.
1. Der „Middleware Switch“
Da Sie nicht alle Nutzer gleichzeitig migrieren können, muss Ihr Backend anhand der aktuellen apiVersion des Nutzers, die in Ihrer Datenbank gespeichert ist, bestimmen, 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 Fitbit Web API-Nutzer 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 Übergänge
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 |
| Bereich | Aktivität | https://www.googleapis.com/auth/googlehealth.activity_and_fitness |
| Nutzer-ID | In der Antwort von /oauth2/token 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 Google Health API-Zugriffstoken erfolgreich überprüft 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 wird verhindert, dass der Nutzer in seinen Fitbit-Einstellungen doppelte App-Berechtigungen sieht.
- Fehlerbehandlung: Wenn ein Fitbit-Aufruf den Fehler „401 Unauthorized“ zurückgibt, leiten Sie automatisch zum Google OAuth-Ablauf weiter, anstatt eine Fehlermeldung anzuzeigen.