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 時間範圍的開始時間。與這段時間範圍重疊的資料會匯總。時間以毫秒為單位,自 Epoch 紀元時間 (含) 起算。
endTimeMillis long 時間範圍的結束時間。與這段時間範圍重疊的資料會匯總。時間以毫秒為單位,自 Epoch 紀元時間 (含) 起算。
aggregateBy[] list 要匯總的資料規格。必須提供至少一個 aggregateBy 規格。系統會使用相同的特徵分塊條件匯總指定的所有資料。每個 aggregateBy 規格的回應中都會有一個資料集。
aggregateBy[].dataTypeName string 要匯總的資料類型。所有提供此資料類型的資料來源都會在匯總過程中提供資料。回應會包含這個資料類型名稱的單一資料集。資料集會有以下衍生的資料來源 ID::com.google.android.gms:aggregated。如果使用者沒有這個資料類型的資料,系統就會傳回空白資料集。注意事項:資料可以按 dataTypeName 或 dataSourceId 進行匯總,無法同時依兩者匯總。
aggregateBy[].dataSourceId string 要匯總的資料來源 ID。匯總作業只會納入指定資料來源 ID 的資料。若有指定,這個資料來源必須存在。提供的憑證中的 OAuth 範圍必須授予這個資料類型的讀取權限。回應中的資料集會具有相同的資料來源 ID。注意:資料可以按 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 匯總資料的開始時間,以毫秒為單位自 Epoch 紀元時間 (含) 起算。
bucket[].endTimeMillis long 匯總資料的結束時間,以 Epoch 紀元時間 (含) 起算的毫秒數表示。
bucket[].dataset[] list 要求中的每個 AggregateBy 都會有一個資料集。
bucket[].session nested object 適用於 Bucket.Type.SESSION
bucket[].session.id string 由用戶端產生的 ID,在這位使用者擁有的所有工作階段中皆不重複。
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 應用程式建立時,這個 ID 會用來當做專屬 ID,但 REST 用戶端無法指定。REST 用戶端會在資料來源資料串流 ID 中顯示開發人員專案編號,而不是 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 資料點,並加入「持續」活動值

bucket[].activity integer 適用於 Bucket.Type.ACTIVITY_TYPE 和 Bucket.Type.ACTIVITY_SEGMENT

試試看!

使用下方的 APIs Explorer,針對即時資料呼叫這個方法,看看會有什麼結果。