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 מפרט הנתונים שיש לצבור. יש לספק לפחות מפרט אחד מסוג אגרגטורBy. כל הנתונים שצוינו יקובצו לפי אותם קריטריונים של סיווג. יהיה מערך נתונים אחד בתשובה לכל מפרטי צבירה.
aggregateBy[].dataTypeName string סוג הנתונים שנצברים. כל מקורות הנתונים שמספקים את סוג הנתונים הזה יסתמכו על הנתונים. התגובה תכיל מערך נתונים יחיד עבור השם של סוג הנתונים הזה. למערך הנתונים יהיה מזהה מקור נתונים נגזר::com.google.android.gms:aggregated. אם למשתמש אין נתונים עבור סוג הנתונים הזה, יוחזר מערך נתונים ריק. הערה: אפשר לצבור נתונים לפי dataTypeName או הפרמטר dataSourceId, ולא לפי שניהם.
aggregateBy[].dataSourceId string מזהה של מקור נתונים שצריך לצבור. בצבירה ייכללו רק נתונים מהמזהה של מקור הנתונים שצוין. אם מקור הנתונים הזה צוין, היקפי ה-OAuth בפרטי הכניסה שסופקו חייבים להעניק גישת קריאה לסוג הנתונים הזה. למערך הנתונים שבתגובה יהיה אותו מזהה של מקור נתונים. הערה: אפשר לצבור נתונים באמצעות dataTypeName או dataDataId.
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.timezone.DateTimeZone
bucketBySession nested object מציינת שהנתונים יצטברו לפי ביקורים של משתמשים. נתונים שלא נמצאים בטווח הזמן של סשן מסוים לא ייכללו בתשובה. בלעדי לחלוטין למפרטים אחרים של קטגוריות.
bucketBySession.minDurationMillis long המדיניות הזו קובעת שרק סשנים של משך זמן ארוך יותר מ-mindurationMillis נלקחים בחשבון ומשמשים כמאגר של נתונים נצברים.
bucketByActivityType nested object מציינת שהנתונים נצברים לפי סוג הפעילות המתבצעת כאשר הנתונים מתועדים. כל הנתונים שתועדו במהלך סוג פעילות מסוים (בטווח הזמן הנתון) יצטברו באותה קטגוריה. הנתונים שתועדו בזמן שהמשתמש לא היה פעיל לא ייכללו בתשובה. בלעדי לחלוטין למפרטים אחרים של קטגוריות.
bucketByActivityType.minDurationMillis long המדיניות הזו קובעת שרק פלחי פעילות של משך זמן ארוך יותר מ-mindurationMillis נלקחים בחשבון ומשמשים כמאגר של נתונים נצברים.
bucketByActivityType.activityDataSourceId string המערכת תשתמש בזרם הפעילות המוגדר כברירת מחדל אם לא צוין userDataSourceId ספציפי.
bucketByActivitySegment nested object מציינת שהנתונים יצטברו לכל פלח פעילות שתועד עבור המשתמש. בדומה ל-bucketByActivitySegment, אבל השיוך יתבצע לכל פלח פעילות, ולא לכל הפלחים מאותו סוג. בלעדי לחלוטין למפרטים אחרים של קטגוריות.
bucketByActivitySegment.minDurationMillis long המדיניות הזו קובעת שרק פלחי פעילות של משך זמן ארוך יותר מ-mindurationMillis נלקחים בחשבון ומשמשים כמאגר של נתונים נצברים.
bucketByActivitySegment.activityDataSourceId string המערכת תשתמש בזרם הפעילות המוגדר כברירת מחדל אם לא צוין userDataSourceId ספציפי.

תשובה

אם השיטה הזו מוצלחת, היא מחזירה גוף תגובה עם המבנה הבא:

{
  "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 בבקשה יופיע מערך נתונים אחד לכל צבירה.
bucket[].session nested object זמין לקטגוריות.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 השם של האפליקציה. זו דרישה ללקוחות Google 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 זמין לקטגוריות.Type.Activity_TYPE, bucket.Type.Activity_SEGMENT

רוצה לנסות?

כדי לקרוא לשיטה הזו על נתונים בזמן אמת ולראות את התגובה, אתם צריכים להשתמש ב-APIs Explorer.