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: | |
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:
|
|
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:
|
|
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.