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