Users.dataset: aggregate

Aggrega i dati di un determinato tipo o di un flusso in bucket divisi per un determinato tipo di confine. È possibile aggregare più set di dati di più tipi da più origini in un solo tipo di bucket per richiesta. Prova subito.

Risorse richieste:

Richiesta HTTP

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

Parametri

Nome del parametro Valore Descrizione
Parametri del percorso
userId string Dati aggregati relativi alla persona identificata. Utilizza 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 scoprire di più, 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 temporale. I dati che si intersecano con questa finestra temporale saranno aggregati. Il tempo è espresso in millisecondi a partire dal periodo.
endTimeMillis long La fine di una finestra temporale. I dati che si intersecano con questa finestra temporale saranno aggregati. Il tempo è espresso in millisecondi a partire dal periodo.
aggregateBy[] list La specifica dei dati da aggregare. È necessario fornire almeno una specifica aggregateBy. Tutti i dati specificati verranno aggregati utilizzando gli stessi criteri dei bucket. La risposta conterrà un set di dati 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 dei dati. La risposta conterrà un singolo set di dati per questo nome del tipo di dati. Il set di dati avrà un ID origine dati derivata::com.google.android.gms:aggregated. Se l'utente non dispone di dati per questo tipo di dati, verrà restituito un set di dati vuoto. Nota: i dati possono essere aggregati per dataTypeName o per dataSourceId, non per entrambi.
aggregateBy[].dataSourceId string Un ID origine dati da aggregare. Nell'aggregazione verranno inclusi solo i dati provenienti dall'ID origine dati specificato. Se specificato, deve esistere questa origine dati; 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 per dataTypeName o per dataSourceId, non per entrambi.
filteredDataQualityStandard[] list NON POPOLARE QUESTO CAMPO. ma viene ignorata.
bucketByTime nested object Specifica che i dati devono essere aggregati per un singolo intervallo di tempo. Escluse a vicenda altre specifiche del bucket.
bucketByTime.durationMillis long Specifica che i bucket di risultati aggregano i dati in base ai periodi di tempo esatti per millis. 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:
  • "day"
  • "month"
  • "week"
bucketByTime.period.value integer
bucketByTime.period.timeZoneId string org.joda.timezone.DateTimeZone
bucketBySession nested object Specifica che i dati devono essere aggregati per sessioni utente. I dati che non rientrano nell'intervallo di tempo di una sessione non verranno inclusi nella risposta. Escluse a vicenda altre specifiche del bucket.
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 devono essere aggregati in base al tipo di attività eseguita al momento della registrazione. 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 saranno inclusi nella risposta. Escluse a vicenda altre specifiche del bucket.
bucketByActivityType.minDurationMillis long Specifica che solo i segmenti di attività di durata superiore a minDurationMillis vengono considerati e utilizzati come contenitori per i dati aggregati.
bucketByActivityType.activityDataSourceId string Se non è stato specificato un valore activityDataSourceId specifico, verrà utilizzato il flusso di attività predefinito.
bucketByActivitySegment nested object Specifica che i dati devono essere aggregati per ogni segmento di attività registrato per un utente. Analogamente a bucketByActivitySegment, il bucket viene eseguito per ogni segmento di attività anziché per tutti i segmenti dello stesso tipo. Escluse a vicenda altre specifiche del bucket.
bucketByActivitySegment.minDurationMillis long Specifica che solo i segmenti di attività di durata superiore a minDurationMillis vengono considerati e utilizzati come contenitori per i dati aggregati.
bucketByActivitySegment.activityDataSourceId string Se non è stato specificato un valore activityDataSourceId specifico, verrà utilizzato il flusso di attività predefinito.

Risposta

In caso di esito positivo, questo metodo restituisce un corpo di 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 un bucket indica il modo in cui l'aggregazione dei dati viene eseguita nel bucket.

I valori accettati sono:
  • "activitySegment"
  • "activityType"
  • "session"
  • "time"
  • "unknown"
bucket[].startTimeMillis long L'ora di inizio dei dati aggregati, in millisecondi dal periodo incluso.
bucket[].endTimeMillis long L'ora di fine dei dati aggregati, in millisecondi dal periodo incluso.
bucket[].dataset[] list La richiesta conterrà un set di dati per AggregateBy.
bucket[].session nested object Disponibile per Bucket.Type.SESSION
bucket[].session.id string Un identificatore generato dal client che sia univoco per tutte le sessioni di proprietà di questo particolare utente.
bucket[].session.name string Un nome leggibile della sessione.
bucket[].session.description string Una descrizione della sessione.
bucket[].session.startTimeMillis long Un'ora di inizio, in millisecondi a partire dal periodo, compreso.
bucket[].session.endTimeMillis long Un'ora di fine, in millisecondi dal periodo, inclusi.
bucket[].session.modifiedTimeMillis long Un timestamp che indica quando la sessione è stata modificata l'ultima volta.
bucket[].session.application nested object L'applicazione che ha creato la sessione.
bucket[].session.application.packageName string Nome del pacchetto dell'applicazione. Viene utilizzato come identificatore univoco quando viene creato dalle applicazioni Android, ma non può essere specificato dai client REST. Il numero di progetto client degli sviluppatori REST verrà riportato negli ID stream di dati dell'origine dati, anziché in 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 il collegamento all'applicazione.
bucket[].session.application.name string Il nome dell'applicazione. Questo passaggio è obbligatorio per i client REST, ma non applichiamo l'unicità di questo nome. Viene fornito per comodità di altri sviluppatori che vogliono identificare quale REST ha creato un'applicazione o un'origine dati.
bucket[].session.activityType integer Il tipo di attività rappresentata da questa sessione.
bucket[].session.activeTimeMillis long Durata attività sessione. Mentre start_time_millis e end_time_millis definiscono l'intera durata della sessione, il tempo attivo 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 STILL dell'attività

bucket[].activity integer Disponibile per Bucket.Type.Activity_TYPE, Bucket.Type.Activity_SEGMENT

Prova.

Utilizza Explorer API di seguito per chiamare questo metodo in base ai dati in tempo reale e visualizzare la risposta.