Users.dataset: aggregate

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

अनुरोध करें

एचटीटीपी अनुरोध

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 इकट्ठा करने के लिए डेटा टाइप. इस तरह का डेटा देने वाले सभी डेटा सोर्स, एग्रीगेशन के लिए डेटा का इस्तेमाल करेंगे. इस जवाब में, इस तरह के डेटा के लिए एक डेटासेट शामिल होगा. डेटासेट में, इकट्ठा किया गया डेटा सोर्स आईडी होगा::com.google.android.gms:एग्रीगेट किया गया. अगर उपयोगकर्ता के पास इस तरह के डेटा के लिए कोई डेटा नहीं है, तो कोई डेटा सेट नहीं दिखेगा. ध्यान दें: डेटा को dataTypeName या dataSourceId से इकट्ठा किया जा सकता है, दोनों नहीं.
aggregateBy[].dataSourceId string इकट्ठा करने के लिए डेटा स्रोत आईडी. एग्रीगेशन में सिर्फ़, बताए गए डेटा सोर्स आईडी का डेटा शामिल किया जाएगा. अगर बताया गया हो, तो यह डेटा सोर्स मौजूद होना चाहिए. दिए गए क्रेडेंशियल में OAuth के स्कोप के पास, इस डेटा टाइप को पढ़ने का ऐक्सेस होना चाहिए. रिस्पॉन्स में मौजूद डेटासेट का डेटा सोर्स आईडी एक ही होगा. ध्यान दें: dataTypeName या dataSourceId के आधार पर डेटा इकट्ठा किया जा सकता है, दोनों नहीं.
filteredDataQualityStandard[] list इस फ़ील्ड को पॉप्युलेट न करें. इसे अनदेखा किया जाता है.
bucketByTime nested object इस नीति से पता चलता है कि डेटा को एक बार के अंतराल पर एग्रीगेट करना है. बकेटिंग की दूसरी खास विशेषताओं के बारे में बहुत कुछ.
bucketByTime.durationMillis long इस नीति से पता चलता है कि नतीजों की बकेट, डेटा को ठीक अवधि अवधि के मुताबिक इकट्ठा करती है. बिना किसी डेटा वाली समय सीमाएं एक खाली डेटासेट के जवाब में शामिल की जाएंगी.
bucketByTime.period nested object
bucketByTime.period.type string

इन वैल्यू का इस्तेमाल किया जा सकता है:
  • "day"
  • "month"
  • "week"
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 बकेट टाइप से पता चलता है कि बकेट में डेटा एग्रीगेशन को कैसे परफ़ॉर्म करता है.

इन वैल्यू का इस्तेमाल किया जा सकता है:
  • "activitySegment"
  • "activityType"
  • "session"
  • "time"
  • "unknown"
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_सेगमेंट के लिए उपलब्ध है

इसे आज़माएं!

इस तरीके को लाइव डेटा पर कॉल करने और जवाब देखने के लिए, नीचे दिए गए एपीआई एक्सप्लोरर का इस्तेमाल करें.