Google Cloud और OAuth को सेट अप करना

Google Health API का ऐक्सेस, Google Cloud के ज़रिए दिया जाता है. एपीआई चालू करने और किसी Google खाते को अनुमति देने के लिए, आपके पास Google Cloud प्रोजेक्ट होना चाहिए.

अगर आप Fitbit API के मौजूदा डेवलपर हैं या Google Health API का इस्तेमाल पहली बार कर रहे हैं, तो आपको एपीआई को कॉल करने के लिए यह चरण पूरा करना होगा.

प्रोजेक्ट और OAuth क्लाइंट बनाना

एपीआई चालू करें और OAuth 2.0 क्लाइंट आईडी पाएं बटन का इस्तेमाल करके, Google Health API चालू करें और OAuth 2.0 क्लाइंट आईडी पाएं:

  1. अगर आपको Google Health API के लिए, Google Cloud का कोई मौजूदा प्रोजेक्ट इस्तेमाल करना है, तो पक्का करें कि आपने उस प्रोजेक्ट के एडमिन खाते में लॉग इन किया हो. इसके बाद, बटन पर क्लिक करके उपलब्ध प्रोजेक्ट की सूची में से मौजूदा प्रोजेक्ट चुनें. अगर ऐसा नहीं है, तो एक नया प्रोजेक्ट बनाएं.
  2. जब आपसे पूछा जाए कि "आप कहां से कॉल कर रहे हैं?", तब वेब सर्वर को चुनें.
  3. रीडायरेक्ट करने के लिए अनुमति वाले यूआरआई के लिए, https://www.google.com वैल्यू डालें. OAuth 2.0 का इस्तेमाल करके ऑथराइज़ेशन कोड पाने के लिए, रीडायरेक्ट यूआरआई की ज़रूरत होती है.
  4. सेटअप पूरा होने के बाद, OAuth 2.0 क्लाइंट आईडी और क्लाइंट सीक्रेट की वैल्यू कॉपी करें. साथ ही, क्रेडेंशियल JSON को अपनी लोकल मशीन पर डाउनलोड करें.
एपीआई चालू करना और OAuth 2.0 क्लाइंट आईडी पाना

अगर आपको Google Cloud प्रोजेक्ट को मैन्युअल तरीके से सेट अप करना है या सेटअप की पुष्टि करनी है और अपने क्रेडेंशियल फिर से पाने हैं, तो यह तरीका अपनाएं:

  1. एपीआई चालू करने पेज पर जाकर, Google Health API को चालू करें.
  2. क्रेडेंशियल पेज पर जाकर, OAuth 2.0 क्लाइंट आईडी पाएं.

Google कंसोल का इस्तेमाल करके OAuth 2.0 सेट अप करने के बारे में ज़्यादा जानने के लिए, Google APIs को ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करना लेख पढ़ें.

स्टेजिंग और प्रोडक्शन के लिए अलग-अलग प्रोजेक्ट इस्तेमाल करना

Google Health API, अलग सैंडबॉक्स या स्टेजिंग एनवायरमेंट उपलब्ध नहीं कराता है. आपके सभी एनवायरमेंट, प्रोडक्शन Google Health API को कॉल करते हैं. इसलिए, Google Cloud प्रोजेक्ट लेवल पर एनवायरमेंट को अलग-अलग मैनेज किया जाता है.

अपने ऐप्लिकेशन के लिए एनवायरमेंट सेट अप करते समय, इन सबसे सही तरीकों को अपनाएं:

  • अपने डेवलपमेंट, स्टेजिंग, और प्रोडक्शन एनवायरमेंट के लिए अलग-अलग Google Cloud प्रोजेक्ट बनाएं. हर प्रोजेक्ट, अपने OAuth 2.0 क्लाइंट, ऐसी स्क्रीन जहां OAuth के लिए सहमति दी जाती है, और वेबुक की सदस्यता लेने वालों को मैनेज करता है.
  • जांच के लिए, अपने प्रोडक्शन Google Cloud प्रोजेक्ट या उसके OAuth 2.0 क्लाइंट का इस्तेमाल न करें. ऐसा इसलिए, क्योंकि उस प्रोजेक्ट में किए गए बदलावों का असर सीधे तौर पर आपके प्रोडक्शन ऐप्लिकेशन पर पड़ता है.
  • सबसे पहले, नॉन-प्रोडक्शन प्रोजेक्ट में बदलाव करें और उनकी जांच करें. इसके बाद, तैयार होने पर अपने प्रोडक्शन प्रोजेक्ट में बदलाव लागू करें.
  • Google Cloud Console में टैग का इस्तेमाल करके, अपने प्रोजेक्ट को एनवायरमेंट के हिसाब से अलग-अलग दिखाएं. निर्देशों के लिए, टैग की मदद से प्रोजेक्ट एनवायरमेंट तय करना लेख पढ़ें.

टेस्ट करने वाले उपयोगकर्ताओं को जोड़ना

डिफ़ॉल्ट रूप से, नए बनाए गए OAuth क्लाइंट की पुष्टि नहीं की जाती. साथ ही, टेस्टिंग और प्रोडक्शन, दोनों के लिए 100 उपयोगकर्ताओं की सीमा तय की जाती है. इस अवधि के दौरान अनुमति देने की सुविधा चालू करने के लिए, आपको अपने प्रोजेक्ट कॉन्फ़िगरेशन में, टेस्ट उपयोगकर्ताओं की सूची में हर उपयोगकर्ता का ईमेल पता मैन्युअल तरीके से जोड़ना होगा.

ऑडियंस पेज पर जाकर, टेस्ट करने वाले उपयोगकर्ताओं की सूची अपडेट करें:

  1. इस पेज पर, आपको "पब्लिश करने का स्टेटस" जांच की जा रही है पर सेट दिखेगा. साथ ही, "उपयोगकर्ता का टाइप" बाहरी पर सेट दिखेगा.
  2. "टेस्ट उपयोगकर्ता" सेक्शन में जाकर, + उपयोगकर्ता जोड़ें पर क्लिक करें. उन टेस्ट उपयोगकर्ताओं का ईमेल पता डालें जिन्हें आपके ऐप्लिकेशन को सेहत का डेटा ऐक्सेस करने की अनुमति देनी है.
  3. सेव करें पर क्लिक करें.

Google Health API के ज़रिए 100 से ज़्यादा उपयोगकर्ताओं को सहायता देने के लिए, तीसरे पक्ष की सुरक्षा जांच को पूरा करना ज़रूरी है. ज़्यादा जानकारी के लिए, OAuth ऐप्लिकेशन की पुष्टि करने से जुड़े सहायता केंद्र पर जाएं.

स्कोप जोड़ना

आपको उन स्कोप के बारे में बताना होगा जिन्हें आपका क्लाइंट डेटा ऐक्सेस पेज पर कॉल कर सकता है:

  1. इस पेज पर, स्कोप जोड़ें या हटाएं पर क्लिक करें.
  2. एपीआई कॉलम में, "Google Health API" खोजें. अपने ऐप्लिकेशन के लिए ज़रूरी स्कोप चुनें.
  3. ज़रूरत के सभी स्कोप चुनने के बाद, डेटा ऐक्सेस पेज पर वापस जाने के लिए, अपडेट करें पर क्लिक करें.
  4. सेव करें पर क्लिक करें.

स्कोप चुनने से पहले, स्कोप लागू करने के बारे में पढ़ें.

आपने क्लाइंट आईडी सेट अप कर लिया है. अब आपको Google Health API को कॉल करने की सुविधा मिलनी चाहिए.

स्कोप अपडेट करें

पुष्टि करने के अनुरोध में, प्रॉम्प्ट पैरामीटर को सहमति पर सेट करके, उपयोगकर्ता को अपने ऐप्लिकेशन को फिर से अनुमति देने के लिए कहा जा सकता है. prompt=consent को शामिल करने पर, सहमति वाली स्क्रीन हर बार तब दिखती है, जब आपका ऐप्लिकेशन ऐक्सेस के स्कोप की अनुमति का अनुरोध करता है. भले ही, सभी स्कोप पहले आपके Google APIs प्रोजेक्ट को दिए गए हों.

prompt=consent पैरामीटर का इस्तेमाल करके स्कोप जोड़ने या बदलने के लिए, यह तरीका अपनाएं:

  1. अपने ऐप्लिकेशन के लिए ज़रूरी स्कोप की पूरी सूची बनाएं. इसमें मौजूदा स्कोप और वे सभी नए स्कोप शामिल होने चाहिए जिन्हें आपको जोड़ना है.

  2. अनुमति देने वाले यूआरएल में स्कोप पैरामीटर में बदलाव करें, ताकि स्पेस से अलग की गई स्कोप वैल्यू की अपडेट की गई सूची शामिल की जा सके.

  3. पुष्टि करने वाले यूआरआई पैरामीटर में prompt=consent जोड़ें. इससे अनुमति देने वाले सर्वर को, उपयोगकर्ता से सहमति लेने के लिए कहा जाता है. इसके बाद ही, वह आपके क्लाइंट को जानकारी भेजता है.

    यहां दिए गए उदाहरण में, Google के OAuth 2.0 ऑथराइज़ेशन एंडपॉइंट को भेजा गया एचटीटीपीएस जीईटी अनुरोध दिखाया गया है. इसमें prompt=consent जोड़कर, कई स्कोप का अनुरोध किया गया है:

    https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=redirect-uri&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly%20https://www.googleapis.com/auth/googlehealth.sleep.readonly&prompt=consent
  4. जब उपयोगकर्ता अपडेट किए गए लिंक पर जाता है, तो उसे सहमति वाला पेज दिखेगा. इस पेज पर, अनुरोध किए गए सभी स्कोप की सूची होगी. जब उपयोगकर्ता "जारी रखें" या "अनुमति दें" पर क्लिक करेगा, तब आपको एक नया ऑथराइज़ेशन कोड मिलेगा. इस कोड को स्कोप के पूरे सेट को कवर करने वाले टोकन के बदले में बदला जा सकता है.

    prompt=consent को सिर्फ़ तब शामिल करें, जब इसकी ज़रूरत हो. जैसे, जब आपको नया रीफ़्रेश टोकन पाना हो या जब अनुरोध किए गए स्कोप बदल गए हों.

OAuth2 क्लाइंट लाइब्रेरी

लोकप्रिय फ़्रेमवर्क के साथ इंटिग्रेट करने के लिए इस्तेमाल की जाने वाली, उपलब्ध OAuth2 क्लाइंट लाइब्रेरी की सूची यहां देखी जा सकती है: Google API को ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करना.

मोबाइल या डेस्कटॉप ऐप्लिकेशन में Google OAuth को लागू करते समय, हमेशा सिस्टम ब्राउज़र (जैसे कि Android पर Chrome के कस्टम टैब या iOS पर ASWebAuthenticationSession) का इस्तेमाल करें. कभी भी एम्बेड किए गए WebViews का इस्तेमाल न करें. ये पासकी को ब्लॉक करते हैं और Google OAuth के फ़्लो को तोड़ते हैं. दिशा-निर्देशों के लिए, 'Google से साइन इन करें' सुविधा इस्तेमाल करने के सबसे सही तरीके देखें.

आपके ऐप्लिकेशन में Google OAuth 2.0 की सहमति लेने वाले फ़्लो को पूरा करने से पहले, उपयोगकर्ता को Google Health मोबाइल ऐप्लिकेशन में साइन इन करना होगा. इससे Google Health को उसके Google खाते से लिंक किया जा सकेगा. Google OAuth 2.0, किसी भी मान्य Google खाते की पुष्टि करता है. साथ ही, यह सहमति वाली स्क्रीन के दौरान यह नहीं देख सकता कि खाते में Google Health की कोई चालू प्रोफ़ाइल है या नहीं.

उपयोगकर्ताओं को यह निर्देश दें कि वे आपके ऐप्लिकेशन में OAuth के लिए सहमति देने की प्रोसेस शुरू करने से पहले, Google Health के मोबाइल ऐप्लिकेशन में यह तरीका अपनाएं:

  1. Google Play Store या Apple App Store से Google Health मोबाइल ऐप्लिकेशन डाउनलोड करें और खोलें.
  2. Google से साइन इन करें पर टैप करें. इसके बाद, वह Google खाता चुनें जिसे उन्हें आपके ऐप्लिकेशन से कनेक्ट करना है.
  3. Google Health की नई प्रोफ़ाइल बनाने के लिए, ऐप्लिकेशन में दिए गए निर्देशों का पालन करें. इसके अलावा, मौजूदा Fitbit खाते को Google खाते पर माइग्रेट करने के लिए, Fitbit खाते को माइग्रेट करने का तरीका अपनाएं.

OAuth टोकन के लिए अनुमति कोड का इस्तेमाल करने के बाद, users.getIdentity एंडपॉइंट (GET https://health.googleapis.com/v4/users/me/identity) को कॉल करें. इससे यह पुष्टि की जा सकेगी कि उपयोगकर्ता का Google खाता, Google Health से लिंक है. इसके बाद ही, अपने ऐप्लिकेशन में खाते को कनेक्ट किए गए के तौर पर मार्क करें. लिंक नहीं किए गए खातों (400 ACCOUNT_NOT_LINKED) को मैनेज करने के बारे में ज़्यादा जानने के लिए, लिंक नहीं किए गए Google खातों को मैनेज करना लेख पढ़ें.

रीफ़्रेश टोकन

अगर आपको लंबे समय तक Google API का ऐक्सेस बनाए रखना है, तो आपके ऐप्लिकेशन को रीफ़्रेश टोकन का इस्तेमाल करना होगा. इससे, उपयोगकर्ता को बार-बार पुष्टि करने की ज़रूरत नहीं पड़ेगी. लागू करने के बारे में पूरी जानकारी के लिए, Google Identity Platform के दस्तावेज़ पढ़ें. इसमें ज़रूरी एचटीटीपी अनुरोधों और पैरामीटर के बारे में भी बताया गया है.

रीफ़्रेश टोकन को ऐक्सेस टोकन के लिए बदलने के लिए, Google OAuth 2.0 टोकन एंडपॉइंट पर एचटीटीपीएस पोस्ट कॉल करें. यहां दिए गए स्निपेट में, अनुरोध और जवाब का एक उदाहरण दिखाया गया है:

अनुरोध

curl -L -X POST 'https://oauth2.googleapis.com/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=client-id&client_secret=client-secret&refresh_token=refresh-token&grant_type=refresh_token'

जवाब

{
  "access_token": "access-token",
  "expires_in": 3599,
  "scope": "scope-list",
  "token_type": "Bearer",
  "refresh_token": "refresh-token",
  "refresh_token_expires_in": 112154
}

टोकन को कब रीफ़्रेश करना चाहिए

जब ऐक्सेस टोकन की समयसीमा खत्म हो जाती है या खत्म होने वाली होती है, तब उपयोगकर्ता के चालू सेशन के दौरान, मांग पर रीफ़्रेश टोकन जनरेट किए जाते हैं. टोकन को बैच में रीफ़्रेश करने से बचें. उदाहरण के लिए, सभी उपयोगकर्ताओं के टोकन को एक तय समय पर रीफ़्रेश करने के लिए, शेड्यूल किए गए cron जॉब या सेवा का इस्तेमाल करना.

टोकन को बैच में रीफ़्रेश करने का सुझाव इसलिए नहीं दिया जाता, क्योंकि:

  • बैच रीफ़्रेश करने से, टोकन अपडेट को सक्रिय उपयोगकर्ता सिंक करने के पैटर्न के साथ अलाइन नहीं किया जा सकता. उपयोगकर्ता के डिवाइस के साथ डेटा सिंक होने का आखिरी समय देखने के लिए, Get Devices कॉल का इस्तेमाल किया जा सकता है. हालांकि, इसके लिए एक अतिरिक्त OAuth स्कोप की ज़रूरत होती है. उपयोगकर्ताओं के लिए, इसे स्वीकार करना ज़रूरी नहीं है.
  • बैच प्रोसेसिंग, उन टोकन को अपडेट करती है जिन्हें रीफ़्रेश करने की ज़रूरत नहीं होती. इससे आपके सिस्टम और Google के सर्वर, दोनों पर प्रोसेसिंग का अतिरिक्त बोझ पड़ता है.
  • अगर बैच रीफ़्रेश के दौरान नेटवर्क की समस्या आती है या सर्वर बंद हो जाता है, तो एक साथ सभी उपयोगकर्ताओं के टोकन पर इसका असर पड़ता है. उपयोगकर्ता सिंक करने की प्रोसेस के दौरान, टोकन को अलग-अलग तौर पर रीफ़्रेश करने से, कुछ समय के लिए होने वाली गड़बड़ियों का असर सिर्फ़ एक उपयोगकर्ता पर पड़ता है.
  • बैच जॉब में समस्याओं का पता लगाना ज़्यादा मुश्किल होता है. बैच अनुरोध कम बार किए जाते हैं और एक साथ कई लॉग एंट्री जनरेट करते हैं. इसलिए, किसी घटना की शुरुआत का पता लगाना मुश्किल होता है.
  • बैच प्रोसेस के दौरान, टोकन के लिए एक साथ कई अनुरोध आने से, दर की सीमाएं पार होने या समय-समय पर पुष्टि करने से जुड़ी गड़बड़ियां होने की संभावना बढ़ जाती है.

टेस्टिंग के दौरान टोकन का व्यवहार

Google Cloud प्रोजेक्ट के पब्लिशिंग स्टेटस के आधार पर, रीफ़्रेश टोकन के काम करने के तरीके के बारे में जानें:

  • टेस्टिंग मोड: अगर OAuth की सहमति वाली स्क्रीन को "टेस्टिंग" पब्लिशिंग स्टेटस के साथ कॉन्फ़िगर किया गया है, तो जारी किए गए रीफ़्रेश टोकन समय के हिसाब से होते हैं और सात दिनों के बाद उनकी समयसीमा खत्म हो जाती है. इस अवधि के दौरान, आपको एक रीफ़्रेश टोकन मिलेगा. यह टोकन तब तक मान्य रहेगा और इसका इस्तेमाल नए ऐक्सेस टोकन पाने के लिए किया जा सकेगा, जब तक इसकी समयसीमा खत्म नहीं हो जाती.
  • पब्लिश किया गया मोड: जब आपके ऐप्लिकेशन का स्टेटस "In Production" पर सेट हो जाता है, तो आम तौर पर रीफ़्रेश टोकन की समयसीमा खत्म नहीं होती. ऐसा तब तक होता है, जब तक उन्हें रद्द न कर दिया जाए या वे लंबे समय तक (आम तौर पर छह महीने) इस्तेमाल न किए जाएं.

उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, पक्का करें कि आपने अपने ऐप्लिकेशन को प्रोडक्शन एनवायरमेंट में ले जाने से पहले पब्लिश कर दिया हो. इससे सात दिनों के बाद टोकन की समयसीमा खत्म होने से बचा जा सकेगा.

सैंपल डेटा जनरेट करना

Google, पहले से भरा हुआ सैंपल या नकली स्वास्थ्य डेटा उपलब्ध नहीं कराता. अपने इंटिग्रेशन की जांच करने के लिए, आपको अपना टेस्ट डेटा जनरेट करना होगा. टेस्ट यूज़र के लिए सैंपल डेटा जनरेट करने के लिए, इनमें से किसी भी तरीके का इस्तेमाल करें:

  • ट्रैकर पहनें: Fitbit ट्रैकर, Pixel Watch या Google Health ऐप्लिकेशन के साथ काम करने वाली कोई अन्य स्मार्टवॉच पहनें. इसके बाद, कुछ देर तक चलें. इससे, आपके कदमों, दिल की धड़कन, और कसरत का डेटा जनरेट होगा.
  • मोबाइल ट्रैकिंग की सुविधा चालू करें: Google Health ऐप्लिकेशन में MobileTrack की सुविधा चालू करें और अपने फ़ोन या टैबलेट के साथ टहलें.
  • डेटा को मैन्युअल तरीके से लॉग करना: Google Health ऐप्लिकेशन की मदद से, सेहत से जुड़ी मेट्रिक (जैसे कि नींद, वज़न, पानी या खाने की मात्रा) को मैन्युअल तरीके से डालें.
  • एपीआई का इस्तेमाल करके डेटा लिखें: प्रोग्राम के हिसाब से, अपने-आप होने वाली प्रोसेस के ज़रिए डेटा भरने के लिए, सीधे तौर पर REST API एंडपॉइंट को लिखने के अनुरोध (जैसे कि POST या PATCH) भेजें. डेटा पॉइंट बनाने और अपडेट करने के बारे में ज़्यादा जानने के लिए, REST रेफ़रंस दस्तावेज़ देखें.

सभी खातों की सुरक्षा (RISC API)

अगर आपको इवेंट टोकन या खाता लिंक करने से जुड़े बदलावों के बारे में सूचनाएं चाहिए, तो जोखिम और घटना की जानकारी शेयर करने और समन्वय (आरआईएससी) की सुविधा चालू करें. जैसे, डिसकनेक्ट किए गए खाते या रद्द किए गए टोकन. इससे सेव किए गए टोकन को हटाया जा सकता है और यूज़र इंटरफ़ेस (यूआई) कनेक्शन की स्थिति को अपडेट किया जा सकता है. RISC API को चालू करना ज़रूरी नहीं है.

अपने Google Cloud प्रोजेक्ट के लिए, RISC API चालू करने के लिए:

  1. Google Cloud Console में, RISC API पेज खोलें. पक्का करें कि आपने Google Health API के लिए इस्तेमाल किया जाने वाला प्रोजेक्ट चुना हो.
  2. RISC की शर्तें पढ़ें और पक्का करें कि आपने ज़रूरी शर्तें समझ ली हैं.
  3. अगर आप शर्तों से सहमत हैं, तो चालू करें पर क्लिक करें.

एपीआई चालू करने के बाद, आपको एक एचटीटीपीएस एंडपॉइंट बनाना और रजिस्टर करना होगा. इससे Google से भेजे गए इवेंट टोकन को पाया और उनकी पुष्टि की जा सकेगी.

'सभी खातों की सुरक्षा' सुविधा और आरआईएससी के बारे में ज़्यादा जानने के लिए, 'सभी खातों की सुरक्षा' सुविधा की मदद से उपयोगकर्ता खातों को सुरक्षित रखना लेख पढ़ें.