Users.dataset: aggregate

Agrega datos de un tipo o transmisión determinado en buckets divididos por un tipo de límite. Múltiples conjuntos de datos de distintos tipos y de múltiples las fuentes se pueden agregar a 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 sobre 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 los 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. Los datos que se cruzan con este período se agregan. El tiempo está en milisegundos desde el epoch, inclusive.
endTimeMillis long El final de un período. Los datos que se cruzan con este período se agregan. El tiempo está 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 deaggregateBy. Todos los datos que se especifiquen se agregarán con los mismos criterios de agrupamiento. Habrá un conjunto de datos en la respuesta para cada especificación de agregaBy.
aggregateBy[].dataTypeName string El tipo de datos que se agregará. Todas las fuentes de datos que proporcionen este tipo de datos aportarán datos a la agregación. La respuesta contendrá un solo 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 pueden agregarse por dataTypeName o dataSourceId, no por ambos.
aggregateBy[].dataSourceId string Un ID de fuente de datos que se agregará. Solo se incluirán en la agregación los datos del ID de la fuente de datos especificado. Si se especifica, esta fuente de datos debe existir. los permisos 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 pueden agregarse por dataTypeName o dataSourceId, no por ambos.
filteredDataQualityStandard[] list NO COMPLETAS ESTE CAMPO. Se ignora.
bucketByTime nested object Especifica que los datos se agreguen en un solo intervalo de tiempo. Mutuamente excluyentes de otras especificaciones de agrupamiento.
bucketByTime.durationMillis long Especifica que los buckets de resultados agreguen datos por períodos exactos de durationMillis. 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 las sesiones de usuario agreguen datos. Los datos que no se encuentren dentro del intervalo de tiempo de una sesión no se incluirán en la respuesta. Mutuamente excluyentes de otras especificaciones de agrupamiento.
bucketBySession.minDurationMillis long Especifica que solo se consideran y usan las sesiones de duración más larga que minDurationMillis como contenedor de datos agregados.
bucketByActivityType nested object Especifica que los datos se agregarán por el tipo de actividad que se realizó cuando se registraron. Todos los datos registrados durante un tipo de actividad determinado (en un 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. Mutuamente excluyentes de otras especificaciones de agrupamiento.
bucketByActivityType.minDurationMillis long Especifica que solo se consideran y se usan los segmentos de actividad con una duración más larga que minDurationMillis como contenedor de datos agregados.
bucketByActivityType.activityDataSourceId string Si no se especifica un activityDataSourceId específico, se usará el flujo de actividad predeterminado.
bucketByActivitySegment nested object Especifica que se agregan los 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. Mutuamente excluyentes de otras especificaciones de agrupamiento.
bucketByActivitySegment.minDurationMillis long Especifica que solo se consideran y se usan los segmentos de actividad con una duración más larga que minDurationMillis como contenedor de datos agregados.
bucketByActivitySegment.activityDataSourceId string Si no se especifica un activityDataSourceId específico, se usará el flujo de actividad predeterminado.

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 buckets 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 Hora de inicio de los datos agregados, en milisegundos desde el ciclo de entrenamiento, inclusive.
bucket[].endTimeMillis long 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 de la solicitud.
bucket[].session nested object Disponible para Bucket.Type.SESSION
bucket[].session.id string Es un identificador generado por el cliente que es único en todas las sesiones que pertenecen a este usuario en particular.
bucket[].session.name string Es un nombre de la sesión legible por humanos.
bucket[].session.description string Es una descripción de esta sesión.
bucket[].session.startTimeMillis long Una 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 de esta aplicación. Se usa como identificador único cuando lo crean aplicaciones para Android, pero los clientes REST no pueden especificarlo. En los clientes de REST, el número de proyecto del desarrollador se reflejará en los IDs de flujo de datos de la fuente de datos, en lugar de en 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 manera que afecte el cálculo de los datos.
bucket[].session.application.detailsUrl string Un URI opcional que se puede usar para volver a la aplicación.
bucket[].session.application.name string Es el nombre de esta aplicación. Esto es obligatorio para los clientes REST, pero no aplicamos este nombre de unicidad. Se proporciona por conveniencia para otros desarrolladores que quieran identificar qué REST creó una aplicación o una fuente de datos.
bucket[].session.activityType integer El tipo de actividad que representa esta sesión.
bucket[].session.activeTimeMillis long Tiempo de actividad de la sesión. Mientras que start_time_millis y end_time_millis definen el tiempo completo de la sesión, el tiempo de actividad puede ser más corto y se puede especificar mediante active_time_millis. Si se conoce el tiempo de inactividad durante la sesión, también se debe insertar a través de un dato com.google.activity.segment con un valor de actividad de STILL.

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

Pruébalo

Usa el Explorador de APIs que se muestra a continuación para llamar a este método en datos en vivo y ver la respuesta.