Users.dataset: aggregate

Agrega datos de un tipo determinado o una transmisión a depósitos divididos por un tipo de límite determinado. Se pueden agregar varios conjuntos de datos de varios tipos y de varias fuentes en un solo tipo de bucket por solicitud. Pruébalo ahora.

Solicitud

Solicitud HTTP

POST https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregate

Parámetros

Nombre del parámetro Valor Descripción
Parámetros de ruta de acceso
userId string Datos agregados de la persona identificada. Usa me para indicar el usuario autenticado. En este momento, solo se admite me.

Autorización

Esta solicitud requiere autorización con al menos uno de los siguientes alcances:

Alcance
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

Para obtener más información, consulta la página de autenticación y autorización.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporciona datos con la siguiente estructura:

{
  "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
  }
}
Nombre de la propiedad Valor Descripción Notas
startTimeMillis long El inicio de un período. Se agregarán los datos que se intersecan con este período. El tiempo es en milisegundos desde el epoch, inclusive.
endTimeMillis long El final de un período. Se agregarán los datos que se intersecan con este período. El tiempo es en milisegundos desde el epoch, inclusive.
aggregateBy[] list La especificación de los datos que se agregarán. Se debe proporcionar al menos una especificación addBy. Todos los datos que se especifiquen se agregarán con los mismos criterios de agrupación. Habrá un conjunto de datos en la respuesta para cada especificación addBy.
aggregateBy[].dataTypeName string El tipo de datos que se va a agregar. Todas las fuentes de datos que proporcionan este tipo de datos aportarán datos a la agregación. La respuesta contendrá un único conjunto de datos para este nombre de tipo de datos. El conjunto de datos tendrá un ID de fuente de datos derivado::com.google.android.gms:aggregated. Si el usuario no tiene datos para este tipo de datos, se mostrará un conjunto de datos vacío. Nota: Los datos se pueden agregar con dataTypeName o dataSourceId, no con ambos.
aggregateBy[].dataSourceId string Un ID de fuente de datos para agregar. En la agregación, solo se incluirán los datos del ID de la fuente de datos especificada. Si se especifica, esta fuente de datos debe existir. Los alcances de OAuth en las credenciales proporcionadas deben otorgar acceso de lectura a este tipo de datos. El conjunto de datos en la respuesta tendrá el mismo ID de fuente de datos. Nota: Los datos se pueden agregar con dataTypeName o con dataSourceId, pero no con ambos.
filteredDataQualityStandard[] list NO COMPLETA ESTE CAMPO. Se ignora.
bucketByTime nested object Especifica que los datos se agregan por un intervalo de tiempo único. Es mutuamente exclusivo de otras especificaciones de agrupamiento.
bucketByTime.durationMillis long Especifica que los depósitos de resultados agregan datos por períodos de duración de durationMillis exactamente. Los períodos que no contienen datos se incluirán en la respuesta con un conjunto de datos vacío.
bucketByTime.period nested object
bucketByTime.period.type string

Los valores aceptables son los siguientes:
  • "day"
  • "month"
  • "week"
bucketByTime.period.value integer
bucketByTime.period.timeZoneId string org.joda.timezone.DateTimeZone
bucketBySession nested object Especifica que los datos se agregan por sesiones de usuario. Los datos que no se encuentren dentro del intervalo de tiempo de una sesión no se incluirán en la respuesta. Es mutuamente exclusivo de otras especificaciones de agrupamiento.
bucketBySession.minDurationMillis long Especifica que solo se consideran las sesiones de duración superior a minDurationMillis y se utilizan como contenedor para datos agregados.
bucketByActivityType nested object Especifica que los datos se agregan según el tipo de actividad que se lleva a cabo cuando se registraron los datos. Todos los datos que se registraron durante un determinado tipo de actividad (en el intervalo de tiempo determinado) se agregarán al mismo bucket. Los datos que se registraron mientras el usuario no estaba activo no se incluirán en la respuesta. Es mutuamente exclusivo de otras especificaciones de agrupamiento.
bucketByActivityType.minDurationMillis long Especifica que solo se consideran y usan los segmentos de actividad de más de minDurationMillis como contenedor para los datos agregados.
bucketByActivityType.activityDataSourceId string Se usará el flujo de actividad predeterminado si no se especifica un activityDataSourceId específico.
bucketByActivitySegment nested object Especifica que se agreguen datos de cada segmento de actividad registrado para un usuario. Es similar a bucketByActivitySegment, pero el agrupamiento se realiza para cada segmento de actividad en lugar de todos los segmentos del mismo tipo. Es mutuamente exclusivo de otras especificaciones de agrupamiento.
bucketByActivitySegment.minDurationMillis long Especifica que solo se consideran y usan los segmentos de actividad de más de minDurationMillis como contenedor para los datos agregados.
bucketByActivitySegment.activityDataSourceId string Se usará el flujo de actividad predeterminado si no se especifica un activityDataSourceId específico.

Respuesta

Si se aplica correctamente, este método muestra un cuerpo de respuesta con la siguiente estructura:

{
  "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
    }
  ]
}
Nombre de la propiedad Valor Descripción Notas
bucket[] list Una lista de depósitos que contienen los datos agregados.
bucket[].type string El tipo de bucket indica cómo se realiza la agregación de datos en el bucket.

Los valores aceptables son los siguientes:
  • "activitySegment"
  • "activityType"
  • "session"
  • "time"
  • "unknown"
bucket[].startTimeMillis long Es la hora de inicio de los datos agregados, en milisegundos desde el ciclo de entrenamiento, inclusive.
bucket[].endTimeMillis long La hora de finalización de los datos agregados, en milisegundos desde el ciclo de entrenamiento, inclusive.
bucket[].dataset[] list Habrá un conjunto de datos por AggregateBy en la solicitud.
bucket[].session nested object Disponible para Bucket.Type.SESSION
bucket[].session.id string Un identificador generado por el cliente que es único en todas las sesiones que posee este usuario en particular.
bucket[].session.name string Un nombre legible de la sesión.
bucket[].session.description string Es una descripción de esta sesión.
bucket[].session.startTimeMillis long Hora de inicio, en milisegundos desde el ciclo de entrenamiento, inclusive.
bucket[].session.endTimeMillis long Una hora de finalización, en milisegundos desde el ciclo de entrenamiento, inclusive.
bucket[].session.modifiedTimeMillis long Una marca de tiempo que indica cuándo se modificó la sesión por última vez.
bucket[].session.application nested object La aplicación que creó la sesión.
bucket[].session.application.packageName string Nombre del paquete para esta aplicación. Se usa como identificador único cuando se crea mediante aplicaciones para Android, pero los clientes de REST no pueden especificarlo. Los clientes de REST tendrán su número de proyecto de desarrollador reflejado en los ID de flujo de datos de la fuente de datos, en lugar del packageName.
bucket[].session.application.version string Versión de la aplicación. Debes actualizar este campo cada vez que la aplicación cambie de una forma que afecte el cálculo de los datos.
bucket[].session.application.detailsUrl string Un URI opcional que se puede usar para establecer un vínculo con la aplicación.
bucket[].session.application.name string El nombre de esta aplicación. Este paso es obligatorio para los clientes REST, pero no exigimos que este nombre sea único. Se proporciona para que otros desarrolladores que quieran identificar qué REST creó una aplicación o fuente de datos.
bucket[].session.activityType integer Es el tipo de actividad que representa esta sesión.
bucket[].session.activeTimeMillis long Tiempo de actividad de la sesión. Si bien start_time_millis y end_time_millis definen el tiempo de sesión completo, el tiempo de actividad puede ser más corto y especificarse mediante active_time_millis. Si se conoce el tiempo de inactividad durante la sesión, también se debe insertar mediante un dato com.google.activity.segment con un valor de actividad STILL.

bucket[].activity integer Disponible para Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT

Pruébela.

Usa el Explorador de API que aparece a continuación para llamar a este método en datos activos y ver la respuesta.