Sekcja Specyfikacja interfejsu API zawiera szczegółowe omówienie komponentów technicznych niezbędnych do integracji z platformą, w tym zakresów autoryzacji, definicji typów danych i struktur punktów końcowych. Ten interfejs API stanowi strategiczną ewolucję starszego interfejsu Fitbit Web API, który został przebudowany na nowoczesnej infrastrukturze, aby zapewnić deweloperom bardziej stabilne i spójne środowisko.
Zakresy
Aby korzystać z zakresów interfejsu Google Health API, musisz zaktualizować żądanie autoryzacji. Zakresy określają, czy Twoja aplikacja obsługuje operacje odczytu czy zapisu. Nie używaj zakresów, które nie są potrzebne Twojej aplikacji. Jeśli projekt aplikacji się zmieni, zawsze możesz dodać więcej zakresów.
Zakresy interfejsu Google Health API to adresy URL HTTP zaczynające się od https://www.googleapis.com/auth/googlehealth.{scope}. Na przykład https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.
Mapowanie zakresów
Oto jak zakresy interfejsu Fitbit Web API są mapowane na zakresy interfejsu Google Health API:
| Zakresy interfejsu Fitbit Web API | Zakresy interfejsu Google Health API |
|---|---|
| aktywność | .activity_and_fitness.readonly
.activity_and_fitness.writeonly |
| blood_glucose | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| cardio_fitness | .activity_and_fitness.readonly
.activity_and_fitness.writeonly |
| elektrokardiogram | .ecg.readonly
|
| tętno | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| irregular_rhythm_notifications | .irn.readonly
|
| lokalizacja | .location.readonly
|
| żywienie | .nutrition.readonly
.nutrition.writeonly |
| oxygen_saturation | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| profil | .profile.readonly
.profile.writeonly |
| respiratory_rate | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| ustawienia | .settings.readonly
.settings.writeonly |
| sen | .sleep.readonly
.sleep.writeonly |
| temperatura | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| waga | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
Typy danych
Oto lista typów danych interfejsu Google Health API i ich mapowanie na interfejs Fitbit Web API.
| Typ danych interfejsu Fitbit Web API | Typ danych interfejsu Google Health APIdataType |
|---|---|
| Kalorie z aktywności | Spalone kalorie podczas aktywnościactive-energy-burned
|
| Aktywne minuty w strefie | Aktywne minuty w strefieactive-zone-minutes
|
| Zawiera zmiany w poziomach aktywności użytkownika | Poziom aktywnościactivity-level
|
| Wysokość | Wysokośćaltitude
|
| Glukoza we krwi | Glukoza we krwiblood-glucose
|
| Tkanka tłuszczowa | Tkanka tłuszczowabody-fat
|
caloriesOut w każdej strefie tętna |
Kalorie w strefie tętnacalories-in-heart-rate-zone
|
| Temperatura (rdzeń) | Temperatura ciałacore-body-temperature
|
| Podsumowanie HRV | Dzienna zmienność rytmu sercadaily-heart-rate-variability
|
| Podsumowanie SpO2 | Dzienne nasycenie tlenemdaily-oxygen-saturation
|
| Tętno spoczynkowe | Dzienne tętno spoczynkowedaily-resting-heart-rate
|
| Temperatura skóry | Dzienne pochodne temperatury snudaily-sleep-temperature-derivations
|
| Odległość | Odległośćdistance
|
| Elektrokardiogram (EKG) | Elektrokardiogram (EKG)electrocardiogram
|
| Włączono nagrywanie | Ćwiczenieexercise
|
| Piętra | Piętrafloors
|
| Jedzenie | Jedzeniefood
|
| Jednostka miary jedzenia | Jednostka miary jedzeniafood-measurement-unit
|
| Tętno | Tętnoheart-rate
|
| HRV w ciągu dnia | Zmienność rytmu sercaheart-rate-variability
|
| Powiadomienia o nieregularnym rytmie serca (IRN) | Powiadomienie o nieregularnym rytmie sercairregular-rhythm-notification
|
| Zapisywanie jedzenia | Dziennik odżywianianutrition-log
|
| SpO2 w ciągu dnia | Nasycenie tlenemoxygen-saturation
|
| Wartość pułapu tlenowego podczas biegu | Pułap tlenowy podczas biegurun-vo2-max
|
| Aktywność – szereg czasowy – minuty w pozycji siedzącej | Okres braku aktywnościsedentary-period
|
| Sen | Sensleep
|
| Kroki | Krokisteps
|
| Aktywność – szereg czasowy – ruchy pływackie | Dane o długościach pływaniaswim-lengths-data
|
Aktywność caloriesOut |
Wszystkie kalorietotal-calories
|
| Wartość pułapu tlenowego | Pułap tlenowyvo2-max
|
| Waga | Wagaweight
|
Punkty końcowe
Punkty końcowe REST mają spójną składnię dla wszystkich typów danych.
- Punkt końcowy usługi: podstawowy adres URL HTTP zmienia się na https://health.googleapis.com.
- Składnia punktu końcowego: interfejs Google Health API obsługuje ograniczoną liczbę punktów końcowych, których można używać w przypadku większości obsługiwanych typów danych. Zapewnia to spójną składnię dla wszystkich typów danych i ułatwia korzystanie z punktów końcowych.
- Identyfikator użytkownika: w składni punktu końcowego należy podać identyfikator użytkownika lub me. Gdy używasz me, identyfikator użytkownika jest wywnioskowany z tokena dostępu.
Przykład: oto przykład punktu końcowego GET Profile wywoływanego za pomocą interfejsu Google Health API.
GET https://health.googleapis.com/v4/users/me/profile
Mapowanie punktów końcowych
Listę dostępnych typów danych i obsługiwanych przez nie metod interfejsu API znajdziesz w tabeli typów danych interfejsu Google Health API.
| Typ punktu końcowego interfejsu Fitbit Web API | Interfejs Google Health API |
| GET (Log | Summary | Daily Summary), gdy żądasz danych z jednego dnia | Metoda dailyRollup z windowSize = 1 dzień |
| GET (Intraday), gdy żądasz szczegółowych danych | Metoda list |
| GET (Time Series) według daty lub przedziału | Metoda rollUp lub dailyRollUp z zakresem dat |
| GET (Log List) | Metoda list |
| CREATE &UPDATE Logs | Metoda patch |
| DELETE Logs | Metoda batchDelete |
| GET Profile | users.getProfile zwraca konkretne informacje o użytkowniku
users.getSettings zwraca jednostki i strefy czasowe użytkownika |
| UPDATE Profile | users.updateProfile modyfikuje konkretne informacje o użytkowniku
users.updateSettings modyfikuje jednostki i strefy czasowe użytkownika |
| Get User ID | users.getIdentity zwraca starszy identyfikator użytkownika Fitbita i identyfikator użytkownika Google użytkownika. |
| Get Devices | users.pairedDevices zwraca listę sparowanych urządzeń |
| Create Subscriptions | projects.subscribers.subscriptions.create ręcznie tworzy subskrypcję |
| Delete Subscriptions | projects.subscribers.subscriptions.delete usuwa subskrypcję |
| Get Subscriptions List | projects.subscribers.subscriptions.list wyświetla wszystkie subskrypcje |