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: | |
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:
|
|
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:
|
|
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ź.