खास टाइप या स्ट्रीम के डेटा को बकेट में इकट्ठा करता है, जिसे दिए गए डेटा की संख्या से भाग दिया जाता है सीमा का प्रकार. कई डेटा सेट और कई टाइप के डेटा सेट सोर्स को हर अनुरोध के लिए, सिर्फ़ एक बकेट टाइप में इकट्ठा किया जा सकता है. इसे अभी आज़माएं.
अनुरोध
एचटीटीपी अनुरोध
POST https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregate
पैरामीटर
पैरामीटर का नाम | मान | ब्यौरा |
---|---|---|
पाथ पैरामीटर | ||
userId |
string |
पहचाने गए व्यक्ति का कुल डेटा. यह बताने के लिए me का इस्तेमाल करें
की पुष्टि हो चुकी है. फ़िलहाल, सिर्फ़ me का इस्तेमाल किया जा सकता है.
|
अनुमति देना
इस अनुरोध के लिए, इनमें से कम से कम एक दायरे की अनुमति लेना ज़रूरी है:
दायरा |
---|
https://www.googleapis.com/auth/fitness.activity.read |
https://www.googleapis.com/auth/fitness.activity.write |
https://www.googleapis.com/auth/fitness.location.read |
https://www.googleapis.com/auth/fitness.location.write |
https://www.googleapis.com/auth/fitness.body.read |
https://www.googleapis.com/auth/fitness.body.write |
https://www.googleapis.com/auth/fitness.nutrition.read |
https://www.googleapis.com/auth/fitness.nutrition.write |
https://www.googleapis.com/auth/fitness.blood_pressure.read |
https://www.googleapis.com/auth/fitness.blood_pressure.write |
https://www.googleapis.com/auth/fitness.blood_glucose.read |
https://www.googleapis.com/auth/fitness.blood_glucose.write |
https://www.googleapis.com/auth/fitness.oxygen_saturation.read |
https://www.googleapis.com/auth/fitness.oxygen_saturation.write |
https://www.googleapis.com/auth/fitness.body_temperature.read |
https://www.googleapis.com/auth/fitness.body_temperature.write |
https://www.googleapis.com/auth/fitness.reproductive_health.read |
https://www.googleapis.com/auth/fitness.reproductive_health.write |
ज़्यादा जानकारी के लिए, पुष्टि करने और अनुमति देने की जानकारी वाला पेज देखें.
अनुरोध का मुख्य भाग
अनुरोध के मुख्य हिस्से में, इस स्ट्रक्चर के साथ डेटा उपलब्ध कराएं:
{ "startTimeMillis": long, "endTimeMillis": long, "aggregateBy": [ { "dataTypeName": string, "dataSourceId": string } ], "filteredDataQualityStandard": [ string ], "bucketByTime": { "durationMillis": long, "period": { "type": string, "value": integer, "timeZoneId": string } }, "bucketBySession": { "minDurationMillis": long }, "bucketByActivityType": { "minDurationMillis": long, "activityDataSourceId": string }, "bucketByActivitySegment": { "minDurationMillis": long, "activityDataSourceId": string } }
प्रॉपर्टी का नाम | मान | ब्यौरा | नोट |
---|---|---|---|
startTimeMillis |
long |
समय की विंडो का प्रारंभ. इस समयावधि की विंडो को इंटरसेक्ट करने वाले डेटा को एग्रीगेट किया जाएगा. Epoch के बाद से समय, मिलीसेकंड में है. इसमें समय भी शामिल है. | |
endTimeMillis |
long |
समय की विंडो का अंत. इस समयावधि की विंडो को इंटरसेक्ट करने वाले डेटा को एग्रीगेट किया जाएगा. Epoch के बाद से समय, मिलीसेकंड में है. इसमें समय भी शामिल है. | |
aggregateBy[] |
list |
एग्रीगेट किए जाने वाले डेटा की खास बातें. कम से कम एक एग्रीगेट दस्तावेज़ की खास जानकारी दी जानी चाहिए. तय किए गए सभी डेटा को एक ही बकेटिंग मानदंड का इस्तेमाल करके इकट्ठा किया जाएगा. हर इकट्ठा की गई शर्त के लिए रिस्पॉन्स में एक डेटासेट होगा. | |
aggregateBy[].dataTypeName |
string |
इकट्ठा किया जाने वाला डेटा टाइप. इस डेटा टाइप की जानकारी देने वाले सभी डेटा सोर्स, इकट्ठा करने के लिए डेटा में योगदान देंगे. जवाब में इस डेटा टाइप के नाम के लिए, एक डेटासेट शामिल होगा. डेटासेट में डिराइव्ड: | |
aggregateBy[].dataSourceId |
string |
एग्रीगेट किया जाने वाला डेटा सोर्स आईडी. एग्रीगेशन में सिर्फ़ बताए गए डेटा सोर्स आईडी का डेटा शामिल किया जाएगा. अगर बताया गया है, तो यह डेटा सोर्स मौजूद होना चाहिए; दिए गए क्रेडेंशियल में दिए गए OAuth दायरे के ज़रिए, इस डेटा टाइप को पढ़ने का ऐक्सेस दिया जाना चाहिए. जवाब में मौजूद डेटासेट का डेटा सोर्स आईडी एक ही होगा. ध्यान दें: डेटा को dataTypeName या dataSourceId के ज़रिए इकट्ठा किया जा सकता है, दोनों के ज़रिए नहीं. | |
filteredDataQualityStandard[] |
list |
इस फ़ील्ड को पॉप इन न करें. इसे अनदेखा कर दिया जाता है. | |
bucketByTime |
nested object |
इससे पता चलता है कि डेटा को एक समय अंतराल के आधार पर एग्रीगेट किया जाएगा. अन्य बकेटिंग विनिर्देशों के साथ म्यूचुअली एक्सक्लूसिव. | |
bucketByTime.durationMillis |
long |
इससे यह पता चलता है कि नतीजे बकेट डेटा को ठीक उतने समय अंतराल के लिए इकट्ठा करने की सुविधा देता है. जवाब में बिना डेटा वाली टाइम फ़्रेम को खाली डेटासेट के साथ शामिल किया जाएगा. | |
bucketByTime.period |
nested object |
||
bucketByTime.period.type |
string |
ये वैल्यू स्वीकार की जाती हैं:
|
|
bucketByTime.period.value |
integer |
||
bucketByTime.period.timeZoneId |
string |
org.joda.timezone.DateTimeZone | |
bucketBySession |
nested object |
इससे पता चलता है कि डेटा को उपयोगकर्ता के सेशन के हिसाब से एग्रीगेट किया जाएगा. ऐसे डेटा को जवाब में शामिल नहीं किया जाएगा जो सेशन की समयसीमा के अंदर नहीं आता. अन्य बकेटिंग विनिर्देशों के साथ म्यूचुअली एक्सक्लूसिव. | |
bucketBySession.minDurationMillis |
long |
इससे पता चलता है कि सिर्फ़ उन सेशन को ही माना जाता है जिनकी अवधि minDurationMillis से ज़्यादा है. साथ ही, इन्हें एग्रीगेट किए गए डेटा के कंटेनर के तौर पर इस्तेमाल किया जाता है. | |
bucketByActivityType |
nested object |
इससे पता चलता है कि डेटा रिकॉर्ड करते समय, की जाने वाली अलग-अलग तरह की गतिविधियों के हिसाब से डेटा को इकट्ठा किया जाएगा. किसी खास तरह की गतिविधि के दौरान रिकॉर्ड किया गया सभी डेटा (.दी गई समयसीमा के लिए) एक ही बकेट में इकट्ठा किया जाएगा. उपयोगकर्ता के ऐक्टिव न रहने के दौरान रिकॉर्ड किए गए डेटा को जवाब में शामिल नहीं किया जाएगा. अन्य बकेटिंग विनिर्देशों के साथ म्यूचुअली एक्सक्लूसिव. | |
bucketByActivityType.minDurationMillis |
long |
इससे पता चलता है कि सिर्फ़ minDurationMillis से ज़्यादा अवधि वाले गतिविधि सेगमेंट माने जाते हैं और एग्रीगेट किए गए डेटा के कंटेनर के रूप में इस्तेमाल किए जाते हैं. | |
bucketByActivityType.activityDataSourceId |
string |
अगर कोई खास activityDataSourceId नहीं बताया गया है, तो गतिविधि की डिफ़ॉल्ट स्ट्रीम का इस्तेमाल किया जाएगा. | |
bucketByActivitySegment |
nested object |
इससे पता चलता है कि किसी उपयोगकर्ता के लिए रिकॉर्ड किए गए हर गतिविधि सेगमेंट के डेटा को एग्रीगेट किया जाएगा. बकेट एक्टिविटी सेगमेंट की तरह ही है, लेकिन बकेट एक ही प्रकार के सभी सेगमेंट के बजाय हर गतिविधि सेगमेंट के लिए की जाती है. अन्य बकेटिंग विनिर्देशों के साथ म्यूचुअली एक्सक्लूसिव. | |
bucketByActivitySegment.minDurationMillis |
long |
इससे पता चलता है कि सिर्फ़ minDurationMillis से ज़्यादा अवधि वाले गतिविधि सेगमेंट माने जाते हैं और एग्रीगेट किए गए डेटा के कंटेनर के रूप में इस्तेमाल किए जाते हैं. | |
bucketByActivitySegment.activityDataSourceId |
string |
अगर कोई खास activityDataSourceId नहीं बताया गया है, तो गतिविधि की डिफ़ॉल्ट स्ट्रीम का इस्तेमाल किया जाएगा. |
जवाब
सही तरीके से काम करने पर, यह तरीका इस स्ट्रक्चर के साथ रिस्पॉन्स का मुख्य हिस्सा दिखाता है:
{ "bucket": [ { "type": string, "startTimeMillis": long, "endTimeMillis": long, "dataset": [ users.dataSources.datasets Resource ], "session": { "id": string, "name": string, "description": string, "startTimeMillis": long, "endTimeMillis": long, "modifiedTimeMillis": long, "application": { "packageName": string, "version": string, "detailsUrl": string, "name": string }, "activityType": integer, "activeTimeMillis": long }, "activity": integer } ] }
प्रॉपर्टी का नाम | मान | ब्यौरा | नोट |
---|---|---|---|
bucket[] |
list |
एग्रीगेट किए गए डेटा वाले बकेट की सूची. | |
bucket[].type |
string |
बकेट का टाइप यह बताता है कि बकेट में डेटा एग्रीगेशन किस तरह से होता है.
ये वैल्यू स्वीकार की जाती हैं:
|
|
bucket[].startTimeMillis |
long |
Epoch के बाद से, मिलीसेकंड में कुल डेटा के शुरू होने का समय. इसमें कुल डेटा भी शामिल है. | |
bucket[].endTimeMillis |
long |
Epoch के बाद से, मिलीसेकंड में कुल डेटा के खत्म होने का समय. इसमें कुल डेटा भी शामिल है. | |
bucket[].dataset[] |
list |
अनुरोध में हर AggregateBy का एक डेटासेट होगा. | |
bucket[].session |
nested object |
बकेट.Type.SESSION के लिए उपलब्ध | |
bucket[].session.id |
string |
क्लाइंट का जनरेट किया गया ऐसा आइडेंटिफ़ायर जो इस उपयोगकर्ता के मालिकाना हक वाले सभी सेशन के लिए यूनीक होता है. | |
bucket[].session.name |
string |
सेशन का ऐसा नाम जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. | |
bucket[].session.description |
string |
इस सेशन के लिए ब्यौरा. | |
bucket[].session.startTimeMillis |
long |
Epoch के बाद से मिलीसेकंड में, शुरू होने का समय. इसमें ये भी शामिल हैं. | |
bucket[].session.endTimeMillis |
long |
Epoch के बाद से मिलीसेकंड में, खत्म होने का समय शामिल है. | |
bucket[].session.modifiedTimeMillis |
long |
इस टाइमस्टैंप से पता चलता है कि सेशन में आखिरी बार कब बदलाव किया गया था. | |
bucket[].session.application |
nested object |
वह ऐप्लिकेशन जिससे सेशन बनाया गया. | |
bucket[].session.application.packageName |
string |
इस ऐप्लिकेशन के लिए पैकेज नाम. Android ऐप्लिकेशन में बनाए जाते समय इसका इस्तेमाल एक यूनीक आइडेंटिफ़ायर के तौर पर किया जाता है. हालांकि, REST क्लाइंट इसे तय नहीं कर सकता. REST क्लाइंट को अपना डेवलपर प्रोजेक्ट नंबर, डेटा सोर्स के डेटा स्ट्रीम आईडी में PackageName के बजाय नया नंबर दिखेगा. | |
bucket[].session.application.version |
string |
ऐप्लिकेशन का वर्शन. जब भी ऐप्लिकेशन में ऐसा कोई बदलाव हो जिससे डेटा के कंप्यूटेशन पर असर पड़े, तो आपको इस फ़ील्ड को अपडेट करना चाहिए. | |
bucket[].session.application.detailsUrl |
string |
एक वैकल्पिक यूआरआई, जिसका इस्तेमाल ऐप्लिकेशन से वापस लिंक करने के लिए किया जा सकता है. | |
bucket[].session.application.name |
string |
इस ऐप्लिकेशन का नाम. REST क्लाइंट के लिए यह ज़रूरी है, लेकिन हम इस नाम की खासियत को लागू नहीं करते. यह सुविधा उन दूसरे डेवलपर के लिए है जो यह जानना चाहते हैं कि किस REST ने ऐप्लिकेशन या डेटा सोर्स बनाया है. | |
bucket[].session.activityType |
integer |
इस सेशन में जिस तरह की गतिविधि दिखाई जाती है. | |
bucket[].session.activeTimeMillis |
long |
सेशन चालू रहने का समय. start_time_milis और end_time_milis, पूरे सेशन का समय तय करते हैं, लेकिन ऐक्टिव समय को कम किया जा सकता है और इसे Active_time_milis से तय किया जा सकता है. अगर सेशन के दौरान ऐक्टिव न रहने का समय पता हो, तो उसे com.google.activity.segment डेटा पॉइंट के ज़रिए भी शामिल करना चाहिए, जिसमें गतिविधि की वैल्यू हो |
|
bucket[].activity |
integer |
Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT के लिए उपलब्ध |
इसे आज़माएं!
लाइव डेटा पर इस तरीके को कॉल करने और जवाब देखने के लिए, नीचे दिए गए एपीआई एक्सप्लोरर का इस्तेमाल करें.