Users.dataset: aggregate

Gromadzi dane określonego typu lub strumienia do grup podzielonych przez określoną wartość i rodzaju granicy. Wiele zbiorów danych różnego typu z wielu źródeł Źródła mogą być agregowane dokładnie w 1 typie zasobnika na żądanie. Wypróbuj

Żądanie

Żądanie HTTP

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

Parametry

Nazwa parametru Wartość Opis
Parametry ścieżki
userId string Zbiorcze dane dotyczące zidentyfikowanej osoby. Użyj me, aby wskazać, uwierzytelnionego użytkownika. Obecnie obsługiwana jest tylko forma me.

Autoryzacja

To żądanie wymaga autoryzacji z co najmniej jednym z tych zakresów:

Zakres
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

Więcej informacji znajdziesz na stronie dotyczącej uwierzytelniania i autoryzacji.

Treść żądania

Dane w treści żądania podaj w następującej strukturze:

{
  "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
  }
}
Nazwa usługi Wartość Opis Uwagi
startTimeMillis long Początek okna czasu. Dane, które przecinają się w tym przedziale czasu, będą agregowane. Czas jest podany w milisekundach od początku epoki.
endTimeMillis long Koniec przedziału czasu. Dane, które przecinają się w tym przedziale czasu, będą agregowane. Czas jest podany w milisekundach od początku epoki.
aggregateBy[] list Specyfikacja danych do zagregowania. Musisz podać co najmniej 1 specyfikację generateBy. Wszystkie określone dane zostaną zagregowane przy użyciu tych samych kryteriów grupowania. Odpowiedź będzie zawierać 1 zbiór danych na każdą specyfikację generateBy.
aggregateBy[].dataTypeName string Typ danych do zagregowania. Wszystkie źródła danych udostępniające ten typ danych będą wnosić dane do agregacji. Odpowiedź będzie zawierać pojedynczy zbiór danych dla tej nazwy typu danych. Zbiór danych będzie miał identyfikator źródła danych o nazwie::com.google.android.gms:aggregated. Jeśli użytkownik nie ma żadnych danych tego typu, zostanie zwrócony pusty zbiór danych. Uwaga: dane mogą być agregowane zarówno według parametru dataTypeName, jak i dataSourceId, ale nie według obu tych parametrów.
aggregateBy[].dataSourceId string Identyfikator źródła danych do zagregowania. Agregacja obejmuje tylko dane z określonego identyfikatora źródła danych. Jeśli to źródło danych jest określone, musi istnieć; Zakresy protokołu OAuth w podanych danych logowania muszą przyznawać dostęp z możliwością odczytu do tego typu danych. Zbiór danych w odpowiedzi będzie miał ten sam identyfikator źródła danych. Uwaga: dane mogą być agregowane według parametru dataTypeName lub dataSourceId, ale nie według obu tych parametrów.
filteredDataQualityStandard[] list NIE POPULUJ TEGO POLA. Jest ignorowana.
bucketByTime nested object Określa, że dane mają być agregowane według pojedynczego przedziału czasu. Zgodność z innymi specyfikacjami grupowania.
bucketByTime.durationMillis long Określa, że zasobniki z wynikami agregują dane według dokładnie określonego czasu trwania w ramach czasowych. Przedziały czasu niezawierające danych zostaną uwzględnione w odpowiedzi z pustym zbiorem danych.
bucketByTime.period nested object
bucketByTime.period.type string

Akceptowane wartości to:
  • day
  • month
  • week
bucketByTime.period.value integer
bucketByTime.period.timeZoneId string org.joda.timezone.DateTimeZone
bucketBySession nested object Określa, że dane mają być agregowane według sesji użytkownika. Dane, które nie mieszczą się w zakresie czasowym sesji, nie zostaną uwzględnione w odpowiedzi. Zgodność z innymi specyfikacjami grupowania.
bucketBySession.minDurationMillis long Określa, że tylko sesje o długości dłuższej niż minDurationMillis są uwzględniane i używane jako kontener na dane zbiorcze.
bucketByActivityType nested object Określa, że dane mają być agregowane według typu działania wykonywanego w momencie ich rejestrowania. Wszystkie dane zarejestrowane w ramach określonego typu aktywności (w danym przedziale czasu) zostaną zebrane w tym samym zasobniku. Dane zarejestrowane, gdy użytkownik był nieaktywny, nie będą uwzględnione w odpowiedzi. Zgodność z innymi specyfikacjami grupowania.
bucketByActivityType.minDurationMillis long Określa, że tylko segmenty aktywności o czasie trwania dłuższym niż minDurationMillis są uwzględniane i używane jako kontener na dane zbiorcze.
bucketByActivityType.activityDataSourceId string Jeśli nie określono konkretnego activityDataSourceId, zostanie użyty domyślny strumień aktywności.
bucketByActivitySegment nested object Określa, że dane mają być agregowane z poszczególnych segmentów aktywności zarejestrowanych dla użytkownika. Podobnie jak w przypadku containerByActivitySegment, z tą różnicą, że segmentacja jest przeprowadzana w odniesieniu do każdego segmentu aktywności, a nie wszystkich segmentów tego samego typu. Zgodność z innymi specyfikacjami grupowania.
bucketByActivitySegment.minDurationMillis long Określa, że tylko segmenty aktywności o czasie trwania dłuższym niż minDurationMillis są uwzględniane i używane jako kontener na dane zbiorcze.
bucketByActivitySegment.activityDataSourceId string Jeśli nie określono konkretnego activityDataSourceId, zostanie użyty domyślny strumień aktywności.

Odpowiedź

Jeśli operacja się uda, metoda zwróci odpowiedź o następującej strukturze:

{
  "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
    }
  ]
}
Nazwa usługi Wartość Opis Uwagi
bucket[] list Lista zasobników zawierających dane zbiorcze.
bucket[].type string Typ zasobnika określa sposób przeprowadzania w nim agregacji danych.

Akceptowane wartości to:
  • activitySegment
  • activityType
  • session
  • time
  • unknown
bucket[].startTimeMillis long Godzina rozpoczęcia dla danych zbiorczych (w milisekundach od początku epoki włącznie).
bucket[].endTimeMillis long Czas zakończenia danych zbiorczych (w milisekundach od początku epoki włącznie).
bucket[].dataset[] list W żądaniu będzie jeden zbiór danych na AggregateBy.
bucket[].session nested object Dostępne dla Bucket.Type.SESSION
bucket[].session.id string Wygenerowany przez klienta identyfikator, który jest unikalny we wszystkich sesjach tego konkretnego użytkownika.
bucket[].session.name string Zrozumiała dla człowieka nazwa sesji.
bucket[].session.description string Opis tej sesji.
bucket[].session.startTimeMillis long Godzina rozpoczęcia w milisekundach od początku epoki.
bucket[].session.endTimeMillis long Godzina zakończenia w milisekundach od początku epoki.
bucket[].session.modifiedTimeMillis long Sygnatura czasowa określająca, kiedy sesja została ostatnio zmodyfikowana.
bucket[].session.application nested object Aplikacja, która utworzyła sesję.
bucket[].session.application.packageName string Nazwa pakietu tej aplikacji. Jest używany jako unikalny identyfikator w przypadku aplikacji na Androida, ale nie może być określony przez klienty REST. W identyfikatorach strumieni danych źródła danych w przypadku klientów REST zamiast wartości packageName będzie widoczny numer projektu programistycznego.
bucket[].session.application.version string Wersja aplikacji. Pole należy aktualizować za każdym razem, gdy aplikacja zmienia się w sposób, który wpływa na obliczenia danych.
bucket[].session.application.detailsUrl string Opcjonalny identyfikator URI, za pomocą którego można utworzyć link z powrotem do aplikacji.
bucket[].session.application.name string Nazwa tej aplikacji. Jest to wymagane w przypadku klientów REST, ale nie egzekwujemy niepowtarzalności tej nazwy. Jest ona udostępniana dla innych programistów, którzy chcą określić, który model REST utworzył aplikację lub źródło danych.
bucket[].session.activityType integer Typ aktywności reprezentowany przez tę sesję.
bucket[].session.activeTimeMillis long Czas aktywności sesji. Czasy start_time_millis i end_time_millis określają czas trwania całej sesji, natomiast czas aktywności może być krótszy i określony za pomocą parametru Active_time_millis. Jeśli jest znany czas braku aktywności w trakcie sesji, należy go też wstawić za pomocą punktu danych com.google.activity.segment z wartością aktywności STILL

bucket[].activity integer Dostępne dla typu zasobnika.Typ.ACTIVITY_TYPE, Typ zasobnika.AKTYWNOŚĆ_SEGMENT

Wypróbuj

Użyj poniższego eksploratora interfejsów API, aby wywołać tę metodę na bieżących danych i wyświetlić odpowiedź.