Users.dataset: aggregate

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::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 in base a dataTypeName o dataSourceId, non entrambi.
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:
  • "day"
  • "month"
  • "week"
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:
  • "activitySegment"
  • "activityType"
  • "session"
  • "time"
  • "unknown"
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.