किसी दिए गए टाइप की सीमा से भाग देने पर, किसी खास तरह का डेटा या बकेट में स्ट्रीम करता है. कई तरह के डेटा सोर्स और कई सोर्स से मिलने वाले कई डेटा सेट को, हर अनुरोध के लिए ठीक एक बकेट टाइप में जोड़ा जा सकता है. इसे अभी आज़माएं.
अनुरोध करें
एचटीटीपी अनुरोध
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 |
समय की शुरुआत. इस समय विंडो से मेल खाने वाले डेटा को एग्रीगेट किया जाएगा. 1970 के बाद से अब तक का समय मिलीसेकंड में है. | |
endTimeMillis |
long |
समय की विंडो का खत्म होना. इस समय विंडो से मेल खाने वाले डेटा को एग्रीगेट किया जाएगा. 1970 के बाद से अब तक का समय मिलीसेकंड में है. | |
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.zone.DateTimeZone | |
bucketBySession |
nested object |
इससे पता चलता है कि डेटा को उपयोगकर्ता सेशन के हिसाब से एग्रीगेट किया गया है. ऐसा डेटा जो किसी सेशन की समयसीमा के अंदर नहीं आता, उसे जवाब में शामिल नहीं किया जाएगा. बकेटिंग की दूसरी खास विशेषताओं के बारे में बहुत कुछ. | |
bucketBySession.minDurationMillis |
long |
इस नीति से यह तय होता है कि एग्रीगेट किए गए डेटा के लिए, कंटेनर के तौर पर सिर्फ़ अवधि का कम से कम अवधि वाला सेशन ही माना जाएगा. | |
bucketByActivityType |
nested object |
इस नीति से यह तय होता है कि डेटा रिकॉर्ड करते समय, किस तरह की गतिविधि की जा रही है. किसी खास गतिविधि के टाइप (किसी दी गई समयसीमा के लिए) के दौरान रिकॉर्ड किया गया सारा डेटा, एक ही बकेट में इकट्ठा कर दिया जाएगा. उपयोगकर्ता के सक्रिय न होने पर रिकॉर्ड किया गया डेटा, जवाब में शामिल नहीं किया जाएगा. बकेटिंग की दूसरी खास विशेषताओं के बारे में बहुत कुछ. | |
bucketByActivityType.minDurationMillis |
long |
इस नीति से यह तय होता है कि कम से कम अवधि की सिर्फ़ ऐसी अवधि वाले गतिविधि सेगमेंट ही माने जाएंगे जिनका डेटा कुल एग्रीगेट किए गए डेटा के लिए इस्तेमाल किया जाता है. | |
bucketByActivityType.activityDataSourceId |
string |
अगर कोई खास ActivityDataSourceId नहीं बताया गया है, तो डिफ़ॉल्ट गतिविधि स्ट्रीम का इस्तेमाल किया जाएगा. | |
bucketByActivitySegment |
nested object |
इस नीति से पता चलता है कि किसी उपयोगकर्ता के लिए रिकॉर्ड किए गए हर गतिविधि सेगमेंट में, एग्रीगेट किया गया डेटा होना चाहिए. बकेट बकेट गतिविधि के समान, लेकिन बकेटिंग एक ही तरह के सभी सेगमेंट के बजाय हर एक गतिविधि सेगमेंट के लिए की जाती है. बकेटिंग की दूसरी खास विशेषताओं के बारे में बहुत कुछ. | |
bucketByActivitySegment.minDurationMillis |
long |
इस नीति से यह तय होता है कि कम से कम अवधि की सिर्फ़ ऐसी अवधि वाले गतिविधि सेगमेंट ही माने जाएंगे जिनका डेटा कुल एग्रीगेट किए गए डेटा के लिए इस्तेमाल किया जाता है. | |
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 |
अनुरोध में हर एग्रीगेट के हिसाब से एक डेटासेट होगा. | |
bucket[].session |
nested object |
Bucket.Type.SESSION के लिए उपलब्ध | |
bucket[].session.id |
string |
क्लाइंट का जनरेट किया गया आइडेंटिफ़ायर, जो इस खास उपयोगकर्ता के मालिकाना हक वाले सभी सेशन में यूनीक होता है. | |
bucket[].session.name |
string |
सेशन का ऐसा नाम जिसे लोग आसानी से पढ़ सकें. | |
bucket[].session.description |
string |
इस सेशन के बारे में जानकारी. | |
bucket[].session.startTimeMillis |
long |
1970 के बाद से शुरुआत का समय, मिलीसेकंड में. | |
bucket[].session.endTimeMillis |
long |
1970 के बाद से अब तक के खत्म होने का समय, मिलीसेकंड में. | |
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 |
सेशन चालू रहने का समय. प्रारंभ_समय_मिली और end_time_मिली में पूरे सत्र के समय को परिभाषित किया जाता है, लेकिन सक्रिय समय को छोटा किया जा सकता है और यहएक्टिव_समय_मिली से तय किया जा सकता है. अगर सेशन के दौरान, इस्तेमाल न होने वाले समय की जानकारी होती है, तो यह एक com.google.activity.सेगमेंट डेटा पॉइंट के ज़रिए भी डाला जाना चाहिए. इसके लिए, एसटीआईएलएल गतिविधि की वैल्यू होनी चाहिए |
|
bucket[].activity |
integer |
Bucket.Type.Activity_TYPE, Bucket.Type.Activity_सेगमेंट के लिए उपलब्ध है |
इसे आज़माएं!
इस तरीके को लाइव डेटा पर कॉल करने और जवाब देखने के लिए, नीचे दिए गए एपीआई एक्सप्लोरर का इस्तेमाल करें.