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

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

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

आपको Google API कंसोल में एक प्रोजेक्ट सेट अप करना होगा. इसके बाद, Fitness REST API, जैसा कि Getting Started में बताया गया है.

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

आपके ऐप्लिकेशन को ऐक्सेस टोकन का इस्तेमाल करके, Fitness 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 संसाधन.

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

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

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

एचटीटीपी तरीका
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))

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

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

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

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

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.segment:1234567890:Example 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 आपके डाले गए डेटा और उस समयावधि के लिए उपलब्ध किसी भी दूसरे डेटा को जोड़ता है उपयोगकर्ता की कसरत के बारे में बताने वाले सेशन के साथ.