Ten dokument opisuje, jak nagrać trening za pomocą interfejsu Fitness API typu REST.
Krok 1. Skonfiguruj projekt
Musisz skonfigurować projekt w konsoli interfejsów API Google i aktywować dostęp do Interfejs Fitness API typu REST opisany w artykule Pierwsze kroki.
Krok 2. Uwierzytelnij aplikację
Twoja aplikacja musi uwierzytelniać żądania do interfejsu Fitness API przy użyciu tokena dostępu. Aby uzyskać token dostępu, aplikacja zawiera dane logowania specyficzne dla klienta i zakres dostępu, jak opisano w artykule Autoryzacja żądań.
Krok 3. Utwórz źródło danych
Źródło danych reprezentuje źródło danych z czujnika określonego typu. Wszystkie dane zostały wstawione do sklep fitness musi być powiązany ze źródłem danych. Źródła danych możesz tworzyć jednorazowo wykorzystaj je w kolejnych sesjach.
Aby utworzyć źródło danych, prześlij uwierzytelnione żądanie HTTP z tymi parametrami:
- Metoda HTTP
- OPUBLIKUJ
- Zasób
https://www.googleapis.com/fitness/v1/users/me/dataSources
Identyfikator użytkownika
me
odnosi się do użytkownika, którego token dostępu autoryzuje żądanie.- Treść żądania
{ "name": "example-fit-heart-rate", "dataStreamId": "raw:com.google.heart_rate.bpm:1234567890:Example Fit:example-fit-hrm-1:123456", "dataType": { "field": [{ "name": "bpm", "format": "floatPoint" }], "name": "com.google.heart_rate.bpm" }, "application": { "packageName": "com.example.fit.someapp", "version": "1.0" }, "device": { "model": "example-fit-hrm-1", "version": "1", "type": "watch", "uid": "123456", "manufacturer":"Example Fit" }, "type": "raw" }
To żądanie tworzy źródło danych, które reprezentuje pulsometr, który dostarcza
dane typu com.google.heart_rate.bpm
. Musisz określić identyfikator źródła danych.
może mieć dowolną wartość. Identyfikator źródła danych w tym przykładzie jest zgodny z uzasadnioną konwencją nazewnictwa
które możesz zastosować. Komponent urządzenia jest opcjonalny, jeśli dane są generowane tylko przez aplikację.
Jeśli żądanie zostanie zrealizowane, odpowiedź będzie miała kod stanu 200 OK
.
Więcej informacji o źródłach danych znajdziesz w dokumentacji interfejsu API
Users.dataSources
.
Krok 4. Dodaj punkty danych
Zbiory danych pozwalają wstawiać punkty danych w magazynie fitness. Zbiór danych to zbiór danych ograniczonych czasowo punktami z jednego źródła danych.
Aby utworzyć zbiór danych i dodać do niego punkty, prześlij uwierzytelnione żądanie HTTP za pomocą tych parametry:
- Metoda HTTP
- WERSJA
- Zasób
https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.heart_rate.bpm:1234567890:Example%20Fit:example-fit-hrm-1:123456/datasets/1411053997000000000-1411057556000000000Adres URL zawiera identyfikator źródła danych oraz czas rozpoczęcia i zakończenia zbioru danych w nanosekundach.
- Treść żądania
{ "minStartTimeNs": 1411053997000000000, "maxEndTimeNs": 1411057556000000000, "dataSourceId": "raw:com.google.heart_rate.bpm:1234567890:Example Fit:example-fit-hrm-1:123456", "point": [ { "startTimeNanos": 1411053997000000000, "endTimeNanos": 1411053997000000000, "dataTypeName": "com.google.heart_rate.bpm", "value": [ { "fpVal": 78.8 } ] }, { "startTimeNanos": 1411055000000000000, "endTimeNanos": 1411055000000000000, "dataTypeName": "com.google.heart_rate.bpm", "value": [ { "fpVal": 89.1 } ] }, { "startTimeNanos": 1411057556000000000, "endTimeNanos": 1411057556000000000, "dataTypeName": "com.google.heart_rate.bpm", "value": [ { "fpVal": 62.45 } ] } ] }
To żądanie tworzy zbiór danych z 3 punktami danych o tętnie w ciągu godziny. źródła kreacji w poprzednim kroku.
Jeśli żądanie zostanie zrealizowane, odpowiedź będzie miała kod stanu 200 OK
.
Więcej informacji o zbiorach danych znajdziesz w dokumentacji interfejsu API
Users.dataSources.datasets
.
Generuj prawidłowe sygnatury czasowe
W tym przykładzie sygnatury czasowe są podane w nanosekundach. Aby wygenerować prawidłowe sygnatury czasowe, możesz użyć funkcji ten skrypt Pythona:
from datetime import datetime, timedelta import calendar def date_to_nano(ts): """ Takes a datetime object and returns POSIX UTC in nanoseconds """ return calendar.timegm(ts.utctimetuple()) * int(1e9) if __name__ == '__main__': print 'Current time is %d' % date_to_nano(datetime.now()) print 'Time 1 hour ago was %d' % date_to_nano(datetime.now() + timedelta(hours=-1))
Krok 5. Utwórz sesję
Po wstawieniu danych do sklepu fitness możesz wstawić sesję, aby udostępnić dodatkowe metadane dla tego treningu. Sesje reprezentują przedział czasu, w którym użytkownicy wykonywać ćwiczenia.
Aby utworzyć sesję dla tego treningu, prześlij uwierzytelnione żądanie HTTP z tymi parametrami:
- Metoda HTTP
- UDERZENIE
- Zasób
https://www.googleapis.com/fitness/v1/users/me/sessions/sessionId
Parametr sessionId jest dowolny i musi być niepowtarzalny dla wszystkich sesji powiązane z uwierzytelnionym użytkownikiem.
- Treść żądania
{ "id": "example-fit-1411053997", "name": "Example Fit Run on Sunday Afternoon", "description": "Example Fit Running Session", "startTimeMillis": 1411053997000, "endTimeMillis": 1411057556000, "application": { "name": "Foo Example App", "version": "1.0" }, "activityType": 8 }
Wybierz nazwę sesji, która będzie zrozumiała dla człowieka i opisowa, ponieważ może być używana przez inne aplikacje podsumowując sesję. Czas rozpoczęcia i zakończenia sesji jest podany w milisekundach (nie nanosekund). Użyj tej samej nazwy pakietu dla sesji i źródeł danych; to sprawia, bardziej spójne dane i zapewni powiązanie atrybucji danych z aplikacją.
Przedział czasu określony w tej sesji obejmuje dane dotyczące tętna wstawione wcześniej, więc Google Fit wiąże te punkty danych z tą sesją.
Więcej informacji o sesjach znajdziesz w dokumentacji API w
Users.sessions
.
Krok 6. Utwórz segmenty aktywności
Segmenty aktywności pomagają Ci reprezentować różne aktywności w ramach sesji.
Segment aktywności to segment czasu, który obejmuje pojedynczą aktywność. Na przykład:
na godzinny bieg możesz utworzyć segment aktywności typu running
(8) dla
całą godzinę. Jeśli użytkownik korzysta z 25 minut, robi 5 minut przerwy, a następnie przez kolejne pół godziny
możesz utworzyć trzy następujące po sobie segmenty aktywności typu running
,
unknown
i running
.
Tworzenie segmentu aktywności przebiega tak samo jak dodawanie innych punktów danych. Aby utworzyć aktywność najpierw utwórz źródło danych o segmentach aktywności, a potem utwórz zbiór danych i dodaj danych o segmencie aktywności.
Poniższy przykład pokazuje 3 segmenty (aktywny, spoczynkowy i aktywny) w tych samych przedziałach czasowych odczyty tętna, zakładając, że masz już utworzony segment aktywności źródła danych, a jego identyfikator to „raw:com.google.activity.segment:1234567890:Example Fit:example-fit-hrm-1:123456":
- Metoda HTTP
- WERSJA
- Zasób
https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.activity.segment:1234567890/datasets/1411053997000000000-1411057556000000000- Treść żądania
{ "minStartTimeNs": 1411053997000000000, "maxEndTimeNs": 1411057556000000000, "dataSourceId": "raw:com.google.activity.segment:1234567890", "point": [ { "startTimeNanos": 1411053997000000000, "endTimeNanos": 1411053997000000000, "dataTypeName": "com.google.activity.segment", "value": [ { "intVal": 8 } ] }, { "startTimeNanos": 1411055000000000000, "endTimeNanos": 1411055000000000000, "dataTypeName": "com.google.activity.segment", "value": [ { "intVal": 4 } ] }, { "startTimeNanos": 1411057556000000000, "endTimeNanos": 1411057556000000000, "dataTypeName": "com.google.activity.segment", "value": [ { "intVal": 8 } ] } ] }
Te punkty danych o segmentach aktywności są dodawane do źródła danych, które zostało specjalnie utworzone do obsługi segmentów aktywności. Możesz utworzyć nowe źródło danych dla każdego zestawu segmentów, lepiej użyć ponownie sesji przeznaczonej dla konkretnego typu sesji, np. biegania.
Sesje określają typ działania, który powinien być zgodny z ogólną aktywnością użytkownika. Nawet jeśli użytkownik zrobi sobie przerwę podczas biegu, cały trening pozostanie uruchomiony. Ogólnie rzecz biorąc, aktywności w sesji odpowiada typowi dominującego segmentu aktywności.
Użyj typu aktywności nieznane (4), aby wskazać, że użytkownik odpoczywa, wiedzieć, co robi użytkownik: może się nie ruszać, rozciągać się, pić wodę itd. Jeśli gdy wiesz, że użytkownik się nie rusza, możesz użyć opcji Nadal (3).
Szczegółową listę typów aktywności znajdziesz w artykule Typy aktywności.
Podsumowanie
W tym samouczku utworzyliśmy dla Ciebie źródła danych dla typów danych i segmentów aktywności. wstawiony przez Ciebie punkty danych do sklepu fitness; możesz utworzyć segmenty aktywności, aby reprezentować różne aktywności odbywające się podczas treningu; a wprowadzona została sesja obejmująca całą trening.
Google Fit wiąże wstawione dane ze wszystkimi innymi danymi dostępnymi w danym przedziale czasu z sesją, która reprezentuje trening użytkownika.