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[].dataTypeName string 要汇总的数据类型。提供此数据类型的所有数据源都将在汇总中提供数据。响应将针对此数据类型名称包含一个数据集。该数据集的数据源 ID 为 derived::com.google.android.gms:aggregated。如果用户没有该数据类型的数据,将返回空数据集。注意:可以使用 dataTypeName 或 dataSourceId 来汇总数据,但不能同时按两者来聚合数据。
aggregateBy[].dataSourceId string 要汇总的数据源 ID。只有来自指定数据源 ID 的数据才会包含在汇总中。如果指定,则此数据源必须存在;所提供的凭据中的 OAuth 范围必须授予对此数据类型的读取权限。响应中的数据集将具有相同的数据源 ID。注意:可以使用 dataTypeName 或 dataSourceId 来汇总数据,但不能同时按两者来聚合。
filteredDataQualityStandard[] list 请勿填充此字段。系统会将其忽略。
bucketByTime nested object 指定按单个时间间隔来汇总数据。相互排斥其他分桶规范。
bucketByTime.durationMillis long 指定结果存储分区按正整数 millis 时间范围汇总数据。不含数据的时间范围将包含在具有空数据集的响应中。
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 客户端生成的标识符,在该特定用户拥有的所有会话中具有唯一性。
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 客户端的开发者项目编号会反映在数据源数据流 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 指定。如果会话处于非活动状态的时间已知,还应通过 STILL Activity 值

的 com.google.activity.Segment 数据点插入
bucket[].activity integer 适用于 Bucket.Type.ACTIVITY_TYPE、Bucket.Type.ACTIVITY_SEGMENT

试试看!

请使用下面的 API Explorer 针对实际数据调用此方法并查看响应。