कसरत को रिकॉर्ड करने का तरीका

इस दस्तावेज़ में, Fitness REST API का इस्तेमाल करके, वर्कआउट रिकॉर्ड करने का तरीका बताया गया है.

पहला चरण: प्रोजेक्ट सेट अप करना

आपको Google API कंसोल में कोई प्रोजेक्ट सेट अप करना होगा और शुरू करना में बताए गए तरीके से, फ़िटनेस REST API का ऐक्सेस चालू करना होगा.

दूसरा चरण: अपने ऐप्लिकेशन की पुष्टि करना

आपके ऐप्लिकेशन को ऐक्सेस टोकन का इस्तेमाल करके, Fitness API के अनुरोधों की पुष्टि करनी होगी. ऐक्सेस टोकन पाने के लिए, आपके ऐप्लिकेशन में क्लाइंट के खास क्रेडेंशियल और ऐक्सेस का दायरा शामिल होता है, जैसा कि अनुरोधों को अनुमति देना में बताया गया है.

तीसरा चरण: डेटा सोर्स बनाना

डेटा सोर्स, एक खास तरह के सेंसर डेटा का सोर्स दिखाता है. फ़िटनेस स्टोर में डाला गया सारा डेटा, किसी डेटा सोर्स से जुड़ा होना चाहिए. डेटा सोर्स सिर्फ़ एक बार बनाए जा सकते हैं और आने वाले समय के सेशन के लिए उनका फिर से इस्तेमाल किया जा सकता है.

डेटा सोर्स बनाने के लिए, इन पैरामीटर के साथ पुष्टि किया गया एचटीटीपी अनुरोध सबमिट करें:

एचटीटीपी तरीका
POST
संसाधन

https://www.googleapis.com/fitness/v1/users/me/dataSources

me यूज़र आईडी उस उपयोगकर्ता को कहा जाता है जिसके ऐक्सेस टोकन से अनुरोध की अनुमति मिलती है.

अनुरोध का मुख्य भाग
{
"name": "example-fit-heart-rate",
"dataStreamId":
    "raw:com.google.heart_rate.bpm:1234567890:Example Fit:example-fit-hrm-1:123456",
"dataType": {
    "field": [{
        "name": "bpm",
        "format": "floatPoint"
    }],
    "name": "com.google.heart_rate.bpm"
},
"application": {
    "packageName": "com.example.fit.someapp",
    "version": "1.0"
},
"device": {
    "model": "example-fit-hrm-1",
    "version": "1",
    "type": "watch",
    "uid": "123456",
    "manufacturer":"Example Fit"
},
"type": "raw"
}

यह अनुरोध करने से एक डेटा सोर्स बनता है. इसमें धड़कन की दर मापने वाला मॉनिटर दिखाया जाता है. इससे com.google.heart_rate.bpm टाइप का फ़िटनेस डेटा मिलता है. आपको डेटा सोर्स का आईडी बताना होगा और यह कोई भी वैल्यू हो सकती है. इस उदाहरण में दिया गया डेटा सोर्स आईडी, नाम रखने के एक ऐसे तरीके का पालन करता है जिसे अपनाया जा सकता है. अगर डेटा सिर्फ़ ऐप्लिकेशन से जनरेट किया गया है, तो डिवाइस कॉम्पोनेंट का इस्तेमाल करना ज़रूरी नहीं है.

अनुरोध स्वीकार होने पर, रिस्पॉन्स 200 OK स्टेटस कोड के तौर पर दिखता है.

डेटा सोर्स के बारे में ज़्यादा जानकारी के लिए, Users.dataSources संसाधन के लिए एपीआई रेफ़रंस देखें.

चौथा चरण: डेटा पॉइंट जोड़ना

डेटासेट का इस्तेमाल, फ़िटनेस स्टोर में डेटा पॉइंट डालने के लिए किया जाता है. डेटासेट, समय से जुड़े एक डेटा सोर्स से डेटा पॉइंट का कलेक्शन होता है.

डेटासेट बनाने और उसमें पॉइंट जोड़ने के लिए, इन पैरामीटर के साथ पुष्टि किया गया एचटीटीपी अनुरोध सबमिट करें:

एचटीटीपी तरीका
PATCH
संसाधन

https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.heart_rate.bpm:1234567890:Example%20Fit:example-fit-hrm-1:123456/datasets/1411053997000000000-1411057556000000000

यूआरएल में डेटा सोर्स का आईडी और डेटासेट के शुरू और खत्म होने का समय, नैनोसेकंड में शामिल होता है.

अनुरोध का मुख्य भाग
{
"minStartTimeNs": 1411053997000000000,
"maxEndTimeNs": 1411057556000000000,
"dataSourceId":
  "raw:com.google.heart_rate.bpm:1234567890:Example Fit:example-fit-hrm-1:123456",
"point": [
{
  "startTimeNanos": 1411053997000000000,
  "endTimeNanos": 1411053997000000000,
  "dataTypeName": "com.google.heart_rate.bpm",
  "value": [
    {
      "fpVal": 78.8
    }
  ]
},
{
  "startTimeNanos": 1411055000000000000,
  "endTimeNanos": 1411055000000000000,
  "dataTypeName": "com.google.heart_rate.bpm",
  "value": [
    {
      "fpVal": 89.1
    }
  ]
},
{
  "startTimeNanos": 1411057556000000000,
  "endTimeNanos": 1411057556000000000,
  "dataTypeName": "com.google.heart_rate.bpm",
  "value": [
    {
      "fpVal": 62.45
    }
  ]
}
]
}

इस अनुरोध से, पिछले चरण में मौजूद डेटा सोर्स के लिए, एक घंटे के अंदर धड़कन की दर के तीन डेटा पॉइंट वाला डेटासेट बन जाता है.

अनुरोध स्वीकार होने पर, रिस्पॉन्स 200 OK स्टेटस कोड के तौर पर दिखता है.

डेटासेट के बारे में ज़्यादा जानकारी के लिए, Users.dataSources.datasets संसाधन के लिए एपीआई रेफ़रंस देखें.

मान्य टाइमस्टैंप जनरेट करें

ऊपर दिए गए उदाहरण में दिए गए टाइमस्टैंप, नैनोसेकंड में हैं. मान्य टाइमस्टैंप जनरेट करने के लिए, इस Python स्क्रिप्ट का इस्तेमाल किया जा सकता है:

from datetime import datetime, timedelta
import calendar

def date_to_nano(ts):
    """
    Takes a datetime object and returns POSIX UTC in nanoseconds
    """
    return calendar.timegm(ts.utctimetuple()) * int(1e9)

if __name__ == '__main__':
    print 'Current time is %d' % date_to_nano(datetime.now())
    print 'Time 1 hour ago was %d' % date_to_nano(datetime.now() +
       timedelta(hours=-1))

पांचवां चरण: सेशन बनाना

अब जब आपने फ़िटनेस स्टोर में डेटा डाला है, तो इस वर्कआउट के लिए अतिरिक्त मेटाडेटा देने के लिए एक सेशन शामिल किया जा सकता है. सेशन, उस समयावधि को दिखाते हैं जिसके दौरान उपयोगकर्ता फ़िटनेस से जुड़ी गतिविधि करते हैं.

इस वर्कआउट के लिए सेशन बनाने के लिए, इन पैरामीटर के साथ पुष्टि किया गया एचटीटीपी अनुरोध सबमिट करें:

एचटीटीपी तरीका
PUT
संसाधन

https://www.googleapis.com/fitness/v1/users/me/sessions/sessionId

sessionId मनचाहे तरीके से सेट किया जाता है और पुष्टि किए गए उपयोगकर्ता से जुड़े सभी सेशन के लिए यूनीक होना चाहिए.

अनुरोध का मुख्य भाग
{
"id": "example-fit-1411053997",
"name": "Example Fit Run on Sunday Afternoon",
"description": "Example Fit Running Session",
"startTimeMillis": 1411053997000,
"endTimeMillis": 1411057556000,
"application": {
"name": "Foo Example App",
"version": "1.0"
},
"activityType": 8
}

सेशन का ऐसा नाम चुनें जिसे लोग आसानी से पढ़ सकें और पढ़ सकें. ऐसा इसलिए, क्योंकि दूसरे ऐप्लिकेशन इस नाम का इस्तेमाल, सेशन की खास जानकारी देने के लिए कर सकते हैं. सेशन के शुरू और खत्म होने का समय मिलीसेकंड में होता है, न कि नैनोसेकंड में. अपने सेशन और डेटा सोर्स के लिए पैकेज के एक ही नाम का इस्तेमाल करें. इससे डेटा ज़्यादा सटीक बनता है. साथ ही, यह पक्का होता है कि डेटा एट्रिब्यूशन, वापस आपके ऐप्लिकेशन से लिंक हो जाएगा.

इस सत्र में तय किए गए समय अंतराल में पहले शामिल किए गए हृदय गति का डेटा शामिल है, इसलिए Google Fit उन डेटा पॉइंट को इस सत्र से जोड़ता है.

सेशन के बारे में ज़्यादा जानकारी के लिए, Users.sessions संसाधन के लिए एपीआई रेफ़रंस देखें.

छठा चरण: गतिविधि के सेगमेंट बनाना

गतिविधि सेगमेंट की मदद से, किसी सेशन में होने वाली अलग-अलग गतिविधियों को दिखाया जा सकता है. गतिविधि सेगमेंट एक टाइम सेगमेंट होता है, जो किसी एक गतिविधि को कवर करता है. उदाहरण के लिए, अगर कोई उपयोगकर्ता एक घंटे तक दौड़ता है, तो पूरे घंटे के लिए running (8) टाइप का गतिविधि सेगमेंट बनाया जा सकता है. अगर कोई उपयोगकर्ता 25 मिनट के लिए दौड़ता है और 5 के लिए ब्रेक लेता है, फिर आधे घंटे के लिए चलता है, तो running, unknown, और running के लगातार तीन सेगमेंट बनाए जा सकते हैं.

ऐक्टिविटी सेगमेंट बनाने का तरीका, किसी दूसरे डेटा पॉइंट को जोड़ने जैसा ही होता है. गतिविधि सेगमेंट बनाने के लिए, सबसे पहले गतिविधि सेगमेंट का डेटा सोर्स बनाएं. इसके बाद, डेटासेट बनाएं और उसमें गतिविधि सेगमेंट के डेटा पॉइंट जोड़ें.

नीचे दिया गया उदाहरण यह मानते हुए कि धड़कन की दर की रीडिंग की अवधि में ही तीन सेगमेंट (दौड़ना, आराम करते, और दौड़ना) बनाते हैं, ऐसा मानते हुए कि आपने पहले ही गतिविधि सेगमेंट डेटा सोर्स बना लिया है और डेटा सोर्स आईडी "raw:com.google.activity.segment:1234567890:उदाहरण Fit:example-fit-hrm-1:123456" है:

एचटीटीपी तरीका
PATCH
संसाधन
https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.activity.segment:1234567890/datasets/1411053997000000000-1411057556000000000
अनुरोध का मुख्य भाग
{
"minStartTimeNs": 1411053997000000000,
"maxEndTimeNs": 1411057556000000000,
"dataSourceId":
  "raw:com.google.activity.segment:1234567890",
"point": [
{
  "startTimeNanos": 1411053997000000000,
  "endTimeNanos": 1411053997000000000,
  "dataTypeName": "com.google.activity.segment",
  "value": [
    {
      "intVal": 8
    }
  ]
},
{
  "startTimeNanos": 1411055000000000000,
  "endTimeNanos": 1411055000000000000,
  "dataTypeName": "com.google.activity.segment",
  "value": [
    {
      "intVal": 4
    }
  ]
},
{
  "startTimeNanos": 1411057556000000000,
  "endTimeNanos": 1411057556000000000,
  "dataTypeName": "com.google.activity.segment",
  "value": [
    {
      "intVal": 8
    }
  ]
}
]
}

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

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

गतिविधि के टाइप जानकारी नहीं (4) का इस्तेमाल करके, यह बताएं कि उपयोगकर्ता आराम कर रहा है, क्योंकि आपको शायद यह पता नहीं है कि उपयोगकर्ता क्या कर रहा है: शायद वह आराम कर रहा है या उसे स्ट्रेच कर रहा है, पानी पी रहा है वगैरह. अगर आपको पता है कि उपयोगकर्ता दूसरी जगह नहीं जा रहा है, तो अब भी (3) का इस्तेमाल करें.

गतिविधि के टाइप की पूरी सूची देखने के लिए, गतिविधि के टाइप देखें.

खास जानकारी

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

Google Fit, आपके डाले गए डेटा और उस समयावधि के लिए उपलब्ध अन्य डेटा को उस सेशन से जोड़ता है जिसमें उपयोगकर्ता की कसरत के बारे में बताया जाता है.