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

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

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

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

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

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

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

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

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

एचटीटीपी मेथड
पोस्ट करें
रिसॉर्स

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 रिसॉर्स के लिए एपीआई रेफ़रंस देखें.

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

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

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

एचटीटीपी मेथड
बैच
रिसॉर्स

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))

चरण 5: सत्र बनाना

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

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

एचटीटीपी मेथड
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 मिनट तक चलता है, तो वह पांच मिनट का ब्रेक लेता है. इसके बाद, वह आधे घंटे के लिए चलता है. ऐसे में, आप running, unknown, और running जैसे लगातार तीन गतिविधि सेगमेंट बना सकते हैं.

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

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

एचटीटीपी मेथड
बैच
रिसॉर्स
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 का इस्तेमाल करें. इसकी वजह यह हो सकती है कि आपको पता ही न हो कि उपयोगकर्ता क्या कर रहा है: हो सकता है कि वह अब भी हो रहा है या पानी खींच रहा है, पानी पीने जैसी कोई गतिविधि हो रही है. अगर आपको पता है कि उपयोगकर्ता को किसी दूसरी जगह नहीं ले जाया जा रहा है, तो आप अब भी का इस्तेमाल कर सकते हैं.

गतिविधि किस तरह की है, इस बारे में ज़्यादा जानने के लिए गतिविधि के प्रकार देखें.

खास जानकारी

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

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