Aggrega i dati di un determinato tipo o stream in bucket divisi per un determinato tipo di confine. Più set di dati di più tipi e provenienti da più le origini possono essere aggregate in un solo tipo di bucket per richiesta. Prova subito.
Richiesta
Richiesta HTTP
POST https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregate
Parametri
Nome del parametro | Valore | Descrizione |
---|---|---|
Parametri percorso | ||
userId |
string |
Dati aggregati relativi alla persona identificata. Usa me per indicare
l'utente autenticato. Al momento è supportato solo me .
|
Autorizzazione
Questa richiesta richiede l'autorizzazione con almeno uno dei seguenti ambiti:
Ambito |
---|
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 |
Per ulteriori informazioni, consulta la pagina Autenticazione e autorizzazione.
Corpo della richiesta
Nel corpo della richiesta, fornisci i dati con la seguente struttura:
{ "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 } }
Nome proprietà | Valore | Descrizione | Note |
---|---|---|---|
startTimeMillis |
long |
L'inizio di una finestra di tempo. I dati che si intersecano con questa finestra temporale verranno aggregati. Il tempo è in millisecondi dal periodo compreso. | |
endTimeMillis |
long |
La fine di una finestra di tempo. I dati che si intersecano con questa finestra temporale verranno aggregati. Il tempo è in millisecondi dal periodo compreso. | |
aggregateBy[] |
list |
La specifica dei dati da aggregati. È necessario fornire almeno una specifica aggregateBy. Tutti i dati specificati verranno aggregati utilizzando gli stessi criteri di bucket. Ci sarà un set di dati nella risposta per ogni specifica aggregateBy. | |
aggregateBy[].dataTypeName |
string |
Il tipo di dati da aggregare. Tutte le origini dati che forniscono questo tipo di dati contribuiranno all'aggregazione. La risposta conterrà un singolo set di dati per questo nome di tipo di dati. Il set di dati avrà un ID origine dati derivato: | |
aggregateBy[].dataSourceId |
string |
Un ID origine dati da aggregare. Solo i dati dell'ID origine dati specificato verranno inclusi nell'aggregazione. Se specificata, questa origine dati deve esistere. gli ambiti OAuth nelle credenziali fornite devono concedere l'accesso in lettura a questo tipo di dati. Il set di dati nella risposta avrà lo stesso ID origine dati. Nota: i dati possono essere aggregati in base a dataTypeName o dataSourceId, non entrambi. | |
filteredDataQualityStandard[] |
list |
NON POPOLARE QUESTO CAMPO. ma viene ignorato. | |
bucketByTime |
nested object |
Specifica che i dati devono essere aggregati in base a un singolo intervallo di tempo. Escludendo a vicenda altre specifiche di bucketing. | |
bucketByTime.durationMillis |
long |
Specifica che i bucket di risultati aggregano i dati in base agli intervalli di tempo lengthMillis esatti. Gli intervalli di tempo che non contengono dati verranno inclusi nella risposta con un set di dati vuoto. | |
bucketByTime.period |
nested object |
||
bucketByTime.period.type |
string |
I valori accettati sono:
|
|
bucketByTime.period.value |
integer |
||
bucketByTime.period.timeZoneId |
string |
org.joda.timezone.DateTimeZone | |
bucketBySession |
nested object |
Specifica che i dati vengono aggregati per sessioni utente. I dati che non rientrano nell'intervallo di tempo di una sessione non verranno inclusi nella risposta. Escludendo a vicenda altre specifiche di bucketing. | |
bucketBySession.minDurationMillis |
long |
Specifica che solo le sessioni di durata superiore a minDurationMillis vengono considerate e utilizzate come contenitore per i dati aggregati. | |
bucketByActivityType |
nested object |
Specifica che i dati vengono aggregati per tipo di attività svolta quando i dati sono stati registrati. Tutti i dati registrati durante un determinato tipo di attività (per l'intervallo di tempo specificato) verranno aggregati nello stesso bucket. I dati registrati mentre l'utente non era attivo non verranno inclusi nella risposta. Escludendo a vicenda altre specifiche di bucketing. | |
bucketByActivityType.minDurationMillis |
long |
Specifica che solo i segmenti di attività con una durata superiore a minDurationMillis vengono considerati e utilizzati come contenitore per i dati aggregati. | |
bucketByActivityType.activityDataSourceId |
string |
Verrà utilizzato il flusso di attività predefinito se non viene specificato un activityDataSourceId specifico. | |
bucketByActivitySegment |
nested object |
Specifica che i dati devono essere aggregati per ogni segmento di attività registrato per un utente. Simile a bucketByActivitySegment, ma il bucketing viene eseguito per ogni segmento di attività anziché per tutti i segmenti dello stesso tipo. Escludendo a vicenda altre specifiche di bucketing. | |
bucketByActivitySegment.minDurationMillis |
long |
Specifica che solo i segmenti di attività con una durata superiore a minDurationMillis vengono considerati e utilizzati come contenitore per i dati aggregati. | |
bucketByActivitySegment.activityDataSourceId |
string |
Verrà utilizzato il flusso di attività predefinito se non viene specificato un activityDataSourceId specifico. |
Risposta
In caso di esito positivo, questo metodo restituisce un corpo della risposta con la seguente struttura:
{ "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 } ] }
Nome proprietà | Valore | Descrizione | Note |
---|---|---|---|
bucket[] |
list |
Un elenco di bucket contenenti i dati aggregati. | |
bucket[].type |
string |
Il tipo di bucket indica il modo in cui l'aggregazione dei dati viene eseguita nel bucket.
I valori accettati sono:
|
|
bucket[].startTimeMillis |
long |
L'ora di inizio dei dati aggregati, in millisecondi dal periodo compreso. | |
bucket[].endTimeMillis |
long |
L'ora di fine dei dati aggregati, in millisecondi dal periodo compreso. | |
bucket[].dataset[] |
list |
Nella richiesta ci sarà un set di dati per AggregateBy. | |
bucket[].session |
nested object |
Disponibile per Bucket.Type.SESSION | |
bucket[].session.id |
string |
Un identificatore generato dal client univoco in tutte le sessioni di proprietà di questo utente specifico. | |
bucket[].session.name |
string |
Un nome leggibile della sessione. | |
bucket[].session.description |
string |
Una descrizione per questa sessione. | |
bucket[].session.startTimeMillis |
long |
Un'ora di inizio, in millisecondi dal epoca, inclusa. | |
bucket[].session.endTimeMillis |
long |
Ora di fine inclusa, in millisecondi dall'epoca. | |
bucket[].session.modifiedTimeMillis |
long |
Un timestamp che indica la data dell'ultima modifica della sessione. | |
bucket[].session.application |
nested object |
L'applicazione che ha creato la sessione. | |
bucket[].session.application.packageName |
string |
Nome del pacchetto per questa applicazione. Viene utilizzato come identificatore univoco quando viene creato dalle app per Android, ma non può essere specificato dai client REST. Per i client REST, il numero del progetto sviluppatore sarà riportato negli ID stream di dati dell'origine dati, invece che nel valore packageName. | |
bucket[].session.application.version |
string |
Versione dell'applicazione. Devi aggiornare questo campo ogni volta che l'applicazione cambia in modo da influire sul calcolo dei dati. | |
bucket[].session.application.detailsUrl |
string |
Un URI facoltativo che può essere utilizzato per rimandare all'applicazione. | |
bucket[].session.application.name |
string |
Il nome di questa applicazione. Questa operazione è obbligatoria per i client REST, ma non applichiamo l'univocità di questo nome. Viene fornito per comodità ad altri sviluppatori che vorrebbero identificare il REST che ha creato un'applicazione o un'origine dati. | |
bucket[].session.activityType |
integer |
Il tipo di attività rappresentato da questa sessione. | |
bucket[].session.activeTimeMillis |
long |
Tempo di attività della sessione. Mentre start_time_millis e end_time_millis definiscono la durata dell'intera sessione, il tempo di attività può essere più breve e specificato da active_time_millis. Se il tempo di inattività durante la sessione è noto, deve essere inserito anche tramite un punto dati com.google.activity.segment con un valore di attività ANCORA |
|
bucket[].activity |
integer |
Disponibile per Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT |
Prova
Usa Explorer API in basso per chiamare questo metodo sui dati in tempo reale e visualizzare la risposta.