Content API की खास बातें

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

स्कोप

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

Google Health API के स्कोप, एचटीटीपी यूआरएल होते हैं. ये https://www.googleapis.com/auth/googlehealth.{scope} से शुरू होते हैं. उदाहरण के लिए, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.

स्कोप मैपिंग

यहां बताया गया है कि Fitbit Web API के स्कोप, Google Health API के स्कोप से कैसे मैप होते हैं:

टेबल: Fitbit Web API से Google Health API के स्कोप की मैपिंग
Fitbit Web API के स्कोप Google Health API के स्कोप
गतिविधि .activity_and_fitness.readonly
.activity_and_fitness.writeonly
blood_glucose .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
cardio_fitness .activity_and_fitness.readonly
.activity_and_fitness.writeonly
इलेक्ट्रोकार्डियोग्राम .ecg.readonly
दिल की धड़कन की दर .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
irregular_rhythm_notifications .irn.readonly
जगह .location.readonly
पोषण .nutrition.readonly
.nutrition.writeonly
oxygen_saturation .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
प्रोफ़ाइल .profile.readonly
.profile.writeonly
respiratory_rate .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
सेटिंग .settings.readonly
.settings.writeonly
नींद का डेटा .sleep.readonly
.sleep.writeonly
तापमान .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
वज़न का डेटा .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

डेटा टाइप

यहां Google Health API के डेटा टाइप की सूची दी गई है. साथ ही, यह बताया गया है कि उन्हें Fitbit Web API के साथ कैसे मैप किया जाता है.

टेबल: Fitbit Web API से Google Health API के डेटा टाइप की मैपिंग
Fitbit Web API का डेटा टाइप Google Health API के डेटा टाइप
  dataType
ब्यौरा
गतिविधि के दौरान खर्च हुई कैलोरी खर्च की गई ऐक्टिव एनर्जी
  active-energy-burned
इससे पता चलता है कि शारीरिक गतिविधि के दौरान कितनी कैलोरी खर्च हुई. इसमें उन समयावधियों के लिए बीएमआर भी शामिल होता है. Google Health API में, active-energy-burned डेटा टाइप (यह सिर्फ़ गतिविधि को ट्रैक करता है, बेसल रेट को नहीं) में बीएमआर जोड़कर, इस डेटा को फिर से जनरेट किया जा सकता है.
ऐक्टिव ज़ोन मिनट ऐक्टिव ज़ोन मिनट
  active-zone-minutes
इसमें उपयोगकर्ता की गतिविधि के लेवल में हुए बदलावों की जानकारी होती है गतिविधि का लेवल
  activity-level
यह किसी खास समयावधि में उपयोगकर्ता की गतिविधि के लेवल को कैप्चर करता है. जैसे, सुस्त या सक्रिय.
ऊंचाई ऊंचाई
  altitude
गतिविधि caloriesBMR आराम करते समय खर्च हुई कैलोरी
  basal-energy-burned
किसी तय समयावधि में, बेसल मेटाबॉलिक रेट (बीएमआर) की वजह से बर्न हुई कैलोरी.
ब्लड ग्लूकोज़ ब्लड ग्लूकोज़
  blood-glucose
बॉडी फ़ैट से जुड़ा डेटा बॉडी फ़ैट
  body-fat
धड़कन की दर वाले हर ज़ोन में caloriesOut धड़कन की दर वाले ज़ोन में बर्न की गई कैलोरी
  calories-in-heart-rate-zone
तापमान (शरीर के अंदरूनी अंगों का) शरीर का तापमान
  core-body-temperature
एचआरवी की खास जानकारी धड़कन की दर में रोज़ाना होने वाले उतार-चढ़ाव
  daily-heart-rate-variability
SpO2 की खास जानकारी ऑक्सीजन की रोज़ाना मात्रा
  daily-oxygen-saturation
नींद के दौरान रिकॉर्ड किए गए डेटा के आधार पर, खून में ऑक्सीजन की मात्रा (SpO2) के आंकड़ों की रोज़ाना की खास जानकारी.
आराम करते समय धड़कन की दर आराम करते समय धड़कन की रोज़ाना की दर
  daily-resting-heart-rate
त्वचा का तापमान सोते समय शरीर के तापमान में होने वाले बदलावों का रोज़ाना का डेटा
  daily-sleep-temperature-derivations
दूरी दूरी
  distance
इलेक्ट्रोकार्डियोग्राम (ईसीजी रीडिंग) इलेक्ट्रोकार्डियोग्राम (ईसीजी रीडिंग)
  electrocardiogram
रिकॉर्ड की गई गतिविधि कसरत
  exercise
रिकॉर्ड की गई कसरत या एक्सरसाइज़ सेशन. इनमें कसरत शुरू/खत्म होने का समय, गतिविधि के टाइप, और सेशन की मेट्रिक शामिल हैं.
फ़्लोर फ़्लोर
  floors
खाना खाना
  food
खाने की चीज़ों को मापने की इकाई खाने को मापने की इकाई
  food-measurement-unit
धड़कन की दर धड़कन की दर
  heart-rate
एचआरवी इंट्राडे धड़कन की दर में उतार-चढ़ाव
  heart-rate-variability
दिल की धड़कन अनियमित होने पर मिलने वाली सूचनाएं (आईआरएन) दिल की धड़कन अनियमित होने पर मिलने वाली सूचनाएं
  irregular-rhythm-notification
खाने से जुड़ा डेटा लॉग करें पोषण से जुड़ा डेटा लॉग करें
  nutrition-log
SpO2 इंट्राडे ऑक्सीजन की मात्रा
  oxygen-saturation
यह सिर्फ़ मिनट के हिसाब से पुष्टि किए गए SpO2 मेज़रमेंट दिखाता है. साथ ही, उन रीडिंग को शामिल नहीं करता जिन्हें मोशन आर्टफ़ैक्ट या सेंसर के कम कॉन्फ़िडेंस की वजह से अमान्य के तौर पर फ़्लैग किया गया है. Fitbit Web API ने सिर्फ़ 50% सेंटिनल वैल्यू को बाहर रखा है. इसलिए, Google Health API उसी समयसीमा के लिए कम डेटा पॉइंट दिखाता है. ज़्यादा जानकारी के लिए, ऑक्सीजन की मात्रा को फ़िल्टर करना लेख पढ़ें.
उपयोगकर्ता के दौड़ने के दौरान, वीओ2 मैक्स की वैल्यू दौड़ने के दौरान वीओ2 मैक्स
  run-vo2-max
गतिविधि की टाइम सीरीज़ में सुस्त रहने का समय (मिनट में) बैठे रहने की अवधि
  sedentary-period
नींद सोने के समय का तापमान
  sleep
चरण तरीका
  steps
गतिविधि की टाइम सीरीज़ में स्विमिंग स्ट्रोक का डेटा तैराकी की लंबाई का डेटा
  swim-lengths-data
गतिविधि caloriesOut कुल कैलोरी
  total-calories
किसी समयावधि के दौरान, उपयोगकर्ता की बर्न की गई कैलोरी की कुल संख्या. इसमें बेसल मेटाबॉलिक रेट और ऐक्टिव एनर्जी बर्न शामिल है.
वीओ2 मैक्स की वैल्यू वीओ2 मैक्स
  vo2-max
वज़न वज़न
  weight

उत्सर्जन का आकलन

Google Health API में मैपिंग और नियम, Fitbit Web API से अलग होते हैं.

ऑक्सीजन की मात्रा के डेटा को फ़िल्टर करना

हर मिनट के हिसाब से खून में ऑक्सीजन की मात्रा (oxygen-saturation) की क्वेरी करने पर, Google Health API, डेटा की वैधता के लिए ज़्यादा सख्त फ़िल्टर लागू करता है. यह फ़िल्टर, Fitbit Web API के लेगसी वर्शन के मुकाबले ज़्यादा सख्त होता है:

  • Fitbit Web API के लेगसी वर्शन (v1 और v3) में, सिर्फ़ 50% की सेंटिनल वैल्यू वाले SpO2 सैंपल शामिल नहीं किए जाते थे.
  • Google Health API (v4) में, SpO2 के वे सभी सैंपल शामिल नहीं होते हैं जिन्हें पुष्टि करने वाले एल्गोरिदम ने अमान्य के तौर पर फ़्लैग किया है. किसी मिनट को अमान्य तब माना जाता है, जब हाथ के हिलने-डुलने या कलाई पर स्मार्टवॉच के ढीले होने की वजह से, ऑप्टिकल सेंसर का सिग्नल भरोसेमंद न हो. ऐसा तब भी होता है, जब कॉन्फ़िडेंस स्कोर 50% से कम हो जाता है. इसके अलावा, अमान्य रीडिंग से ठीक तीन मिनट पहले और बाद में या जब मान्य रीडिंग लगातार चार मिनट से कम समय तक चलती है, तब भी मिनट को अमान्य माना जाता है.

Google Health API, 50% सेंटिनल वैल्यू के बजाय सभी अमान्य माप हटा देता है. इसलिए, यह Fitbit Web API की तुलना में, समान समयसीमा के लिए कम oxygen-saturation डेटा पॉइंट दिखाता है. साथ ही, हर मिनट के कवरेज में अंतर होने की उम्मीद है. मिनट के हिसाब से मिली रीडिंग, उपयोगकर्ता की daily-oxygen-saturation नींद के बारे में खास जानकारी का हिसाब लगाने के लिए इस्तेमाल किए गए, पुष्टि किए गए डेटा पॉइंट से मेल खाती हैं. ज़्यादा जानकारी के लिए, हर मिनट के हिसाब से SpO2 डेटा को फ़िल्टर करना और डेटा की वैधता लेख पढ़ें.

गतिविधि का लेवल, एमईटी, और कदमों की संख्या के थ्रेशोल्ड

Google Health API में, उपयोगकर्ता की हर मिनट की गतिविधि का लेवल, उसके मेटाबॉलिक इक्विवैलेंट ऑफ़ टास्क (एमईटी) और कदमों की संख्या से तय होता है.

गतिविधि का लेवल धड़कन की दर मापने वाले डिवाइस धड़कन की दर का डेटा रिकॉर्ड न करने वाले डिवाइस
बैठे रहने की आदत ≤ 1.5 एमईटी ≤ 1.5 एमईटी
कम ऐक्टिव > 1.5 एमईटी और ≤ 4.2 एमईटी > 1.5 एमईटी और ≤ 3.5 एमईटी
कुछ हद तक सक्रिय > 4.2 एमईटी और < 6.0 एमईटी
(जब तक बहुत ज़्यादा ऐक्टिव होने की शर्तें पूरी न हों)
> 3.5 एमईटी और < 6.0 एमईटी
(जब तक बहुत ज़्यादा ऐक्टिव होने की शर्तें पूरी न हों)
बहुत ज़्यादा 6.0 एमईटी या इससे ज़्यादा या 5.0 एमईटी या इससे ज़्यादा, जिसमें हर मिनट 150 कदम या इससे ज़्यादा चलने की दर हो 6.0 एमईटी या इससे ज़्यादा या 5.0 एमईटी या इससे ज़्यादा, जिसमें हर मिनट 150 कदम या इससे ज़्यादा चलने की दर हो

ऐक्टिव मिनट में, MODERATELY_ACTIVE और VERY_ACTIVE मिनट शामिल होते हैं. हालांकि, ज़्यादा मेहनत वाली गतिविधि के लिए ऐक्टिव मिनट तभी क्रेडिट किया जाता है, जब वह कम से कम 10 मिनट तक लगातार की गई हो. इसमें कम मेहनत वाली गतिविधि के लिए, ज़्यादा से ज़्यादा दो मिनट का गैप हो सकता है.

आराम करने और सोने का समय

सुस्ती के मिनटों में, सोने का समय शामिल नहीं होता. हर दिन के रोलअप में, सुस्ती वाले मिनटों का हिसाब लगाने के लिए, दिन के कुल मिनटों (1,440 मिनट) में से, सोने के मिनट और ऐक्टिव मिनट (हल्की गतिविधि, सामान्य गतिविधि, और तेज़ गतिविधि) घटाए जाते हैं:

Sedentary Minutes = 1440 - Sleep Minutes - Lightly Active Minutes - Moderately Active Minutes - Very Active Minutes

बॉडी मास इंडेक्स (बीएमआई)

Google Health API, पहले से मौजूद बीएमआई डेटा टाइप को सार्वजनिक नहीं करता. इसलिए, ऐप्लिकेशन को लंबाई और वज़न के रिकॉर्ड का इस्तेमाल करके, क्लाइंट-साइड पर बॉडी मास इंडेक्स का हिसाब लगाना होगा:

  1. वज़न डेटा टाइप में weightGrams फ़ील्ड से, उपयोगकर्ता का वज़न ग्राम में पाएं. इसे किलोग्राम (1,000 से भाग दें) या पाउंड (453.59237 से भाग दें) में बदलें.
  2. लंबाई डेटा टाइप के heightMillimeters फ़ील्ड से, उपयोगकर्ता की लंबाई मिलीमीटर में हासिल करें. इसे मीटर (1,000 से भाग दें) या इंच (25.4 से भाग दें) में बदलें.
  3. बीएमआई की वैल्यू का हिसाब लगाने के लिए, इनमें से किसी एक फ़ॉर्मूले का इस्तेमाल करें:
    • मेट्रिक का फ़ॉर्मूला: BMI = weight (kg) / [height (m)]^2
    • इंपीरियल फ़ॉर्मूला: BMI = (weight (lbs) / [height (in)]^2) * 703

बीएमआई की वैल्यू के हिसाब से, लोगों को इन कैटगरी में बांटा जाता है:

वज़न की कैटगरी बीएमआई रेंज
सामान्य से कम वज़न 18.5 से कम
सही वज़न 18.5 से 24.9
सामान्य से ज़्यादा वज़न 25 से 29.9
मोटापा 30 या इससे ज़्यादा

बेसल मेटाबॉलिक रेट (बीएमआर)

बेसल मेटाबॉलिक रेट (बीएमआर) का मतलब है कि आराम करते समय, शरीर के बुनियादी फ़ंक्शन के लिए कितनी कैलोरी की ज़रूरत होती है. Google Health API, पहले से मौजूद बीएमआर डेटा टाइप को ज़ाहिर नहीं करता. इसलिए, ऐप्लिकेशन को हैरिस-बेनेडिक्ट फ़ॉर्मूला का इस्तेमाल करके, क्लाइंट-साइड पर इसका हिसाब लगाना होगा. ज़्यादा जानने के लिए, Wikipedia पर हैरिस-बेनेडिक्ट इक्वेशन वाला लेख पढ़ें.

यह कैलकुलेशन करने के लिए:

  1. वज़न डेटा टाइप में मौजूद weightGrams फ़ील्ड से, उपयोगकर्ता का वज़न ग्राम में पाएं और उसे किलोग्राम में बदलें (1,000 से भाग दें). पाउंड को किलोग्राम में बदलने के लिए, पाउंड की संख्या को 2.2 से भाग दें.
  2. लंबाई डेटा टाइप के heightMillimeters फ़ील्ड से, उपयोगकर्ता की लंबाई मिलीमीटर में हासिल करें और उसे सेंटीमीटर में बदलें (10 से भाग दें). इंच को सेंटीमीटर में बदलने के लिए, 2.54 से गुणा करें.
  3. Profile संसाधन में मौजूद age फ़ील्ड से, उपयोगकर्ता की उम्र सालों में फ़ेच करें.
  4. जैविक लिंग की जानकारी अलग से हासिल करें. उदाहरण के लिए, उपयोगकर्ता से पूछकर या अपने डेटाबेस में इसे सेव करके. ऐसा इसलिए, क्योंकि Google Health API इस फ़ील्ड को ज़ाहिर नहीं करता.
  5. उपयोगकर्ता के बायोलॉजिकल सेक्स के आधार पर, इनमें से किसी एक फ़ॉर्मूले का इस्तेमाल करें:
    • पुरुष: BMR = 66 + (13.7 x weight_kg) + (5 x height_cm) - (6.8 x age_years)
    • महिलाएं: BMR = 655 + (9.6 x weight_kg) + (1.8 x height_cm) - (4.7 x age_years)

टोटल डेली एनर्जी एक्सपेंडिचर (टीडीईई)

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

गतिविधि का लेवल ब्यौरा मल्टीप्लायर
बैठे रहने की आदत बहुत कम या बिलकुल भी कसरत न करना. BMR x 1.2
कम ऐक्टिव हर हफ़्ते एक से तीन दिन कसरत करना. BMR x 1.375
कुछ हद तक ऐक्टिव हर हफ़्ते तीन से पांच दिन कसरत करना. BMR x 1.55
बहुत ज़्यादा ऐक्टिव हफ़्ते में छह से सात दिन कसरत करना. BMR x 1.725
ज़्यादा ऐक्टिव बहुत ज़्यादा कसरत या शारीरिक मेहनत वाला काम. BMR x 1.9

एंडपॉइंट

REST एंडपॉइंट, सभी तरह के डेटा के लिए एक जैसा सिंटैक्स इस्तेमाल करते हैं.

  • सेवा एंडपॉइंट: बेस एचटीटीपी यूआरएल बदलकर https://health.googleapis.com हो जाता है.
  • एंडपॉइंट सिंटैक्स: Google Health API, सीमित संख्या में एंडपॉइंट के साथ काम करता है. इनका इस्तेमाल, ज़्यादातर डेटा टाइप के साथ किया जा सकता है. इससे सभी तरह के डेटा के लिए एक जैसा सिंटैक्स मिलता है. साथ ही, एंडपॉइंट इस्तेमाल करना आसान हो जाता है.
  • यूज़र आइडेंटिफ़ायर: एंडपॉइंट सिंटैक्स में, यूज़र आईडी या me में से किसी एक को शामिल करना ज़रूरी है. me का इस्तेमाल करने पर, यूज़र आईडी का अनुमान ऐक्सेस टोकन से लगाया जाता है.

उदाहरण: यहां Google Health API का इस्तेमाल करके कॉल किए गए GET Profile एंडपॉइंट का उदाहरण दिया गया है

GET https://health.googleapis.com/v4/users/me/profile

एंडपॉइंट मैपिंग

उपलब्ध डेटा टाइप और उनके साथ काम करने वाले एपीआई के तरीकों की सूची के लिए, Google Health API के डेटा टाइप टेबल देखें.

Fitbit Web API एंडपॉइंट का टाइप Google Health API
GET (लॉग | खास जानकारी | रोज़ की खास जानकारी), जहां आपको एक दिन के डेटा का अनुरोध करना है dailyRollup तरीका, जिसमें windowSize = 1 दिन
GET (इंट्राडे), जहां आपको ज़्यादा जानकारी वाले डेटा का अनुरोध करना है list तरीका
तारीख या इंटरवल के हिसाब से GET (टाइम सीरीज़) तारीख की सीमा के साथ rollUp या dailyRollUp तरीका
GET (लॉग लिस्ट) list तरीका
लॉग बनाना और अपडेट करना patch तरीका
DELETE लॉग batchDelete तरीका
GET Profile users.getProfile, उपयोगकर्ता की खास जानकारी दिखाता है
users.getSettings, उपयोगकर्ता की इकाइयां और टाइमज़ोन दिखाता है
प्रोफ़ाइल अपडेट करना users.updateProfile उपयोगकर्ता की खास जानकारी में बदलाव करता है
users.updateSettings उपयोगकर्ता की इकाइयों और टाइमज़ोन में बदलाव करता है
यूज़र आईडी पाना users.getIdentity, उपयोगकर्ता का Fitbit लेगसी और Google यूज़र आईडी दिखाता है.
डिवाइसों की जानकारी पाना users.pairedDevices, जोड़े गए डिवाइसों की सूची दिखाता है
सदस्यताएं बनाना projects.subscribers.subscriptions.create मैन्युअल तरीके से सदस्यता बनाता है
सदस्यताएं मिटाना projects.subscribers.subscriptions.delete सदस्यता मिटाना
सदस्यताओं की सूची पाना projects.subscribers.subscriptions.list सभी सदस्यताओं की सूची दिखाता है