Users.dataset: aggregate

Agreguje dane określonego typu lub strumień do zasobników podzielonych przez określony typ granicy. Zbiorcze zbiory danych różnego typu i z wielu źródeł mogą być zbierane w ramach jednego typu zasobnika na żądanie. Wypróbuj teraz

Żądanie

Żądanie HTTP

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

Parametry

Nazwa parametru Wartość Opis
Parametry ścieżki
userId string Dane zbiorcze dla zidentyfikowanej osoby. Użyj me, aby wskazać uwierzytelnionego użytkownika. Obecnie obsługiwany jest tylko typ 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 uwierzytelniania i autoryzacji.

Treść żądania

Dane w treści żądania muszą mieć poniższy format:

{
  "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 właściwości Wartość Opis Uwagi
startTimeMillis long Początek okresu czasu. Dane krzyżujące się z tym przedziałem czasu będą agregowane. Czas jest podany w milisekundach od początku epoki (włącznie).
endTimeMillis long Koniec okresu. Dane krzyżujące się z tym przedziałem czasu będą agregowane. Czas jest podany w milisekundach od początku epoki (włącznie).
aggregateBy[] list Specyfikacja danych, które mają być zbierane. Musisz podać co najmniej jeden parametr „AggregateBy”. Wszystkie podane dane zostaną agregowane na podstawie tych samych kryteriów grupowania. W odpowiedzi na każdą specyfikację zagregowaną będzie jeden zbiór danych.
aggregateBy[].dataTypeName string Typ danych, które mają być agregowane. Wszystkie źródła danych dostarczające tego typu dane przyczyniają się do agregacji. Odpowiedź będzie zawierać pojedynczy zbiór danych dla nazwy tego typu danych. Zbiór danych będzie miał identyfikator źródła danych ustalony::com.google.android.gms:aggregated. Jeśli użytkownik nie ma danych tego typu, zostanie zwrócony pusty zbiór danych. Uwaga: dane mogą być zbierane według parametru dataTypeName lub datasourceId, a nie obu.
aggregateBy[].dataSourceId string Identyfikator źródła danych do agregowania. Agregacja obejmuje tylko dane z określonego identyfikatora źródła. Jeśli źródło jest określone, to źródło danych musi istnieć. Zakresy OAuth w podanych danych logowania muszą przyznawać uprawnienia do odczytu tego typu danych. Zbiór danych w odpowiedzi będzie miał ten sam identyfikator źródła danych. Uwaga: dane mogą być zbierane według parametru dataTypeName lub datadataId, a nie obu.
filteredDataQualityStandard[] list NIE wypełniaj tego pola. Jest ignorowane.
bucketByTime nested object Określa, że dane są agregowane w pojedynczym przedziale czasu. Wzajemnie wykluczające się inne specyfikacje zasobników.
bucketByTime.durationMillis long Określa, że te wyniki grupują dane zbiorczo według przedziału czasu trwania Millis. Przedziały czasu, które nie zawierają żadnych danych, będą uwzględnione w odpowiedzi z pustym zbiorem danych.
bucketByTime.period nested object
bucketByTime.period.type string

Akceptowane wartości:
  • day
  • month
  • week
bucketByTime.period.value integer
bucketByTime.period.timeZoneId string org.joda.timezone.DateTimeZone
bucketBySession nested object Określa, że dane są agregowane według sesji użytkownika. Dane, które nie mieszczą się w zakresie czasu sesji, nie zostaną uwzględnione w odpowiedzi. Wzajemnie wykluczające się inne specyfikacje zasobników.
bucketBySession.minDurationMillis long Określa, że kontener na potrzeby danych zbiorczych uwzględnia tylko sesje o czasie trwania dłuższym niż minDurationMillis.
bucketByActivityType nested object Określa, że dane są agregowane według typu wykonywanej czynności podczas rejestrowania danych. Wszystkie dane zarejestrowane podczas określonego typu (w danym przedziale czasu) zostaną zebrane w tym samym zasobniku. Dane zarejestrowane, gdy użytkownik był nieaktywny, nie zostaną uwzględnione w odpowiedzi. Wzajemnie wykluczające się inne specyfikacje zasobników.
bucketByActivityType.minDurationMillis long Określa, że kontener danych zbiorczych jest brany pod uwagę tylko jako segmenty aktywności dłuższe niż minDurationMillis.
bucketByActivityType.activityDataSourceId string Jeśli nie określisz konkretnego identyfikatora activityDataSourceId, zostanie użyty domyślny strumień aktywności.
bucketByActivitySegment nested object Określa, że dane są zbierane w przypadku każdego segmentu aktywności zarejestrowanego przez użytkownika. Podobnie jak segmentByByActivitySegment, zasobnik jest wykonywany dla każdego segmentu aktywności, a nie wszystkich segmentów tego samego typu. Wzajemnie wykluczające się inne specyfikacje zasobników.
bucketByActivitySegment.minDurationMillis long Określa, że kontener danych zbiorczych jest brany pod uwagę tylko jako segmenty aktywności dłuższe niż minDurationMillis.
bucketByActivitySegment.activityDataSourceId string Jeśli nie określisz konkretnego identyfikatora activityDataSourceId, zostanie użyty domyślny strumień aktywności.

Odpowiedź

Jeśli operacja się uda, metoda zwróci odpowiedź w poniższym formacie:

{
  "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 właściwości Wartość Opis Uwagi
bucket[] list Lista zasobników zawierających dane zbiorcze.
bucket[].type string Typ zasobnika określa sposób agregacji danych w tym zasobniku.

Akceptowane wartości:
  • activitySegment
  • activityType
  • session
  • time
  • unknown
bucket[].startTimeMillis long Czas rozpoczęcia 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 jednym żądaniu AggregateBy znajdzie się jeden zbiór danych.
bucket[].session nested object Dostępne dla zasobnika.Type.SESSION
bucket[].session.id string Wygenerowany przez klienta identyfikator, który jest unikalny dla wszystkich sesji danego użytkownika.
bucket[].session.name string Czytelna dla człowieka nazwa sesji.
bucket[].session.description string Opis tej sesji.
bucket[].session.startTimeMillis long Czas rozpoczęcia w milisekundach od początku epoki.
bucket[].session.endTimeMillis long Czas zakończenia w milisekundach od początku epoki.
bucket[].session.modifiedTimeMillis long Sygnatura czasowa wskazują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. Używa się go jako unikalnego identyfikatora podczas tworzenia przez aplikacje na Androida, ale nie można go określić przez klientów typu REST. Klienty REST będą miały widoczny numer projektu w identyfikatorze strumienia danych, a nie identyfikator pakiety.
bucket[].session.application.version string Wersja aplikacji. Musisz zaktualizować to pole za każdym razem, gdy aplikacja zmieni się w sposób, który ma wpływ na obliczanie danych.
bucket[].session.application.detailsUrl string Opcjonalny identyfikator URI, którego można użyć do połączenia z aplikacją.
bucket[].session.application.name string Nazwa tej aplikacji. Jest to wymagane w przypadku klientów REST, ale nie egzekwujemy unikalnych nazw. Inną opcją jest wygodne dla innych deweloperów, którzy chcą określić, który REST utworzył aplikację lub źródło danych.
bucket[].session.activityType integer Rodzaj aktywności danej sesji.
bucket[].session.activeTimeMillis long Czas aktywności sesji. Choć parametry start_time_millis i end_time_millis definiują pełny czas trwania sesji, to czas aktywności może być krótszy, a parametr Active_time_millis – krótszy. Jeśli czas bezczynności jest znany podczas sesji, należy go wstawić przez punkt danych com.google.activity.segment z wartością STILL

bucket[].activity integer Dostępne w przypadku typów zasobników.Typ.aktywności.

Wypróbuj

Skorzystaj z eksploratora interfejsów API poniżej, aby wywołać tę metodę w aktywnych danych i zobaczyć odpowiedź.