लेगसी Fitbit Web API से Google Health API पर माइग्रेट करने के लिए, आपको सामान्य OAuth2 लाइब्रेरी से Google Auth Library पर माइग्रेट करना होगा. यहां "डुअल-लाइब्रेरी" की स्थिति को मैनेज करने के लिए, आर्किटेक्चर का सुझाव दिया गया है. साथ ही, JavaScript में लिखा गया एक सूडो-कोड भी दिया गया है.
1. "मिडलवेयर स्विच"
सभी उपयोगकर्ताओं को एक साथ माइग्रेट नहीं किया जा सकता. इसलिए, आपके बैकएंड को यह तय करना होगा कि उपयोगकर्ता के डेटाबेस में सेव किए गए मौजूदा apiVersion के आधार पर, किस लाइब्रेरी का इस्तेमाल किया जाए.
लागू करना
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 फ़्लो माइग्रेट करना
उपयोगकर्ताओं को बनाए रखने के लिए, "इंटरप्ट-एंड-अपग्रेड" पैटर्न का इस्तेमाल करें. इससे यह पक्का होता है कि उपयोगकर्ता को तब तक दोबारा लॉगिन करने के लिए मजबूर नहीं किया जाता, जब तक वह ऐप्लिकेशन का इस्तेमाल नहीं कर रहा है.
रीडायरेक्ट करने का लॉजिक
जब Fitbit Web API का कोई उपयोगकर्ता किसी सुविधा का इस्तेमाल करता है, तो माइग्रेशन ट्रिगर करें:
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. मुख्य तकनीकी ट्रांज़िशन
JavaScript माइग्रेशन स्क्रिप्ट लिखते समय, इन अंतरों का ध्यान रखें:
| सुविधा | Fitbit Web API (लेगसी) | Google Health API (Google-Identity) |
| टोकन एंडपॉइंट | https://api.fitbit.com/oauth2/token | https://oauth2.googleapis.com/token |
| पुष्टि करने वाली लाइब्रेरी | स्टैंडर्ड ओपन सोर्स | Google Auth |
| दायरा | गतिविधि | https://www.googleapis.com/auth/googlehealth.activity_and_fitness |
| यूज़र आईडी | /oauth2/token रिस्पॉन्स में Fitbit का एन्कोड किया गया आईडी मिला | users.getIdentity एंडपॉइंट से मिला यूज़र आईडी |
4. उपयोगकर्ताओं को अपने साथ जोड़े रखने की चेकलिस्ट
- सेशन जारी रखना: जब तक Google Health API के access_token की पुष्टि नहीं हो जाती और उसे आपके डेटाबेस में सेव नहीं कर लिया जाता, तब तक उपयोगकर्ता के पुराने Fitbit Web API सेशन को बंद न करें.
- अनुमति अपने-आप रद्द होना: Google Health API पर माइग्रेट करने की प्रोसेस पूरी होने के बाद, लेगसी Fitbit के अनुमति रद्द करने वाले एंडपॉइंट पर POST अनुरोध का इस्तेमाल करें: https://api.fitbit.com/oauth2/revoke. इससे यह पक्का हो जाता है कि उपयोगकर्ता को Fitbit की सेटिंग में, ऐप्लिकेशन की "डुप्लीकेट" अनुमतियां नहीं दिखेंगी.
- गड़बड़ी ठीक करना: अगर Fitbit कॉल में 401 Unauthorized गड़बड़ी होती है, तो गड़बड़ी का मैसेज दिखाने के बजाय, Google OAuth फ़्लो पर अपने-आप रीडायरेक्ट करें.