Users.dataset: aggregate

داده های یک نوع خاص یا جریان را در سطل هایی که بر اساس نوع مشخصی از مرز تقسیم می شوند، جمع می کند. مجموعه داده های متعدد از انواع مختلف و از منابع متعدد را می توان در هر درخواست دقیقاً در یک نوع سطل جمع کرد. اکنون آن را امتحان کنید .

درخواست

درخواست HTTP

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 شروع یک پنجره از زمان داده هایی که با این پنجره زمانی تلاقی می کنند، جمع می شوند. زمان بر حسب میلی‌ثانیه از دوران، شامل می‌شود.
endTimeMillis long پایان یک پنجره زمان. داده هایی که با این پنجره زمانی تلاقی می کنند، جمع می شوند. زمان بر حسب میلی‌ثانیه از دوران، شامل می‌شود.
aggregateBy[] list مشخصات داده هایی که باید تجمیع شوند. حداقل یک مشخصات aggregateBy باید ارائه شود. تمام داده‌هایی که مشخص شده‌اند با استفاده از معیارهای سطل‌بندی یکسان جمع‌آوری می‌شوند. یک مجموعه داده در پاسخ برای هر مشخصات aggregateBy وجود خواهد داشت.
aggregateBy[]. dataTypeName string نوع داده برای تجمیع همه منابع داده ای که این نوع داده را ارائه می دهند، داده ها را به تجمع کمک می کنند. پاسخ شامل یک مجموعه داده واحد برای این نام نوع داده خواهد بود. مجموعه داده دارای شناسه منبع داده مشتق شده خواهد بود: :com.google.android.gms:aggregated. اگر کاربر هیچ داده ای برای این نوع داده نداشته باشد، یک مجموعه داده خالی برگردانده می شود. توجه: داده ها را می توان با dataTypeName یا dataSourceId جمع کرد، نه هر دو.
aggregateBy[]. dataSourceId string شناسه منبع داده برای تجمیع. فقط داده هایی از شناسه منبع داده مشخص شده در انبوه گنجانده می شود. اگر مشخص شده باشد، این منبع داده باید وجود داشته باشد. دامنه های OAuth در اعتبارنامه های ارائه شده باید به این نوع داده دسترسی خواندن بدهد. مجموعه داده در پاسخ همان شناسه منبع داده را خواهد داشت. توجه: داده ها را می توان با dataTypeName یا dataSourceId جمع کرد، نه هر دو.
filteredDataQualityStandard[] list این فیلد را پر نکنید. نادیده گرفته می شود.
bucketByTime nested object مشخص می کند که داده ها در یک بازه زمانی واحد جمع شوند. متقابلاً از سایر مشخصات سطل منصرف می شود.
bucketByTime. durationMillis long مشخص می‌کند که سطل‌های نتیجه داده‌ها را دقیقاً بر اساس بازه‌های زمانی durationMillis جمع‌آوری می‌کنند. فریم های زمانی که حاوی داده ای نیستند در پاسخ با مجموعه داده خالی گنجانده می شوند.
bucketByTime. period nested object
bucketByTime.period. type string

مقادیر قابل قبول عبارتند از:
  • " day "
  • " month "
  • " week "
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، اما سطل بندی برای هر بخش فعالیت به جای همه بخش های یک نوع انجام می شود. متقابلاً از سایر مشخصات سطل منصرف می شود.
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 نوع سطل نشان می دهد که چگونه تجمیع داده ها در سطل انجام می شود.

مقادیر قابل قبول عبارتند از:
  • " activitySegment "
  • " activityType "
  • " session "
  • " time "
  • " unknown "
bucket[]. startTimeMillis long زمان شروع برای داده‌های انبوه، بر حسب میلی‌ثانیه از دوران، شامل.
bucket[]. endTimeMillis long زمان پایان برای داده‌های انبوه، بر حسب میلی‌ثانیه از دوران، شامل.
bucket[]. dataset[] list یک مجموعه داده در هر AggregateBy در درخواست وجود خواهد داشت.
bucket[]. session nested object موجود برای Bucket.Type.SESSION
bucket[].session. id string یک شناسه ایجاد شده توسط مشتری که در تمام جلسات متعلق به این کاربر خاص منحصر به فرد است.
bucket[].session. name string نام جلسه قابل خواندن توسط انسان.
bucket[].session. description string توضیحاتی برای این جلسه
bucket[].session. startTimeMillis long زمان شروع، در میلی ثانیه از دوران، شامل.
bucket[].session. endTimeMillis long زمان پایان، در میلی ثانیه از دوران، شامل.
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 یک URI اختیاری که می تواند برای پیوند دادن به برنامه استفاده شود.
bucket[].session.application. name string نام این اپلیکیشن این برای مشتریان REST لازم است، اما ما منحصر به فرد بودن این نام را اعمال نمی کنیم. برای سایر توسعه دهندگانی که می خواهند تشخیص دهند کدام REST یک برنامه یا منبع داده ایجاد کرده است، به راحتی ارائه می شود.
bucket[].session. activityType integer نوع فعالیتی که این جلسه نشان می دهد.
bucket[].session. activeTimeMillis long زمان فعال جلسه در حالی که start_time_millis و end_time_millis زمان کامل جلسه را تعریف می کنند، زمان فعال می تواند کوتاهتر باشد و توسط active_time_millis مشخص شود. اگر زمان غیرفعال در طول جلسه مشخص باشد، باید از طریق یک نقطه داده com.google.activity.segment با مقدار فعالیت STILL نیز درج شود.

bucket[]. activity integer موجود برای Bucket.Type.ACTIVITY_TYPE، Bucket.Type.ACTIVITY_SEGMENT

آن را امتحان کنید!

از APIs Explorer زیر برای فراخوانی این روش در داده‌های زنده و دیدن پاسخ استفاده کنید.