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