La sezione Specifica API fornisce una panoramica dettagliata dei componenti tecnici essenziali per l'integrazione con la piattaforma, inclusi gli ambiti di autorizzazione, le definizioni dei tipi di dati e le strutture degli endpoint. Questa API rappresenta un'evoluzione strategica della precedente API web Fitbit, ricostruita su un'infrastruttura moderna per garantire un'esperienza per gli sviluppatori più stabile e coerente.
Ambiti
Devi aggiornare la richiesta di autorizzazione per utilizzare gli ambiti dell'API Google Health. Gli ambiti definiscono se la tua app supporta le operazioni di lettura o scrittura. Non utilizzare ambiti non necessari per la tua app. Puoi sempre aggiungere altri ambiti in un secondo momento se il design dell'app cambia.
Gli ambiti dell'API Google Health sono un URL HTTP che inizia con https://www.googleapis.com/auth/googlehealth.{scope}. Ad esempio, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.
Mappature degli ambiti
Ecco come gli ambiti dell'API Fitbit Web corrispondono agli ambiti dell'API Google Health:
| Ambiti API Fitbit Web | Ambiti API Google Health |
|---|---|
| attività | .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 |
| elettrocardiogramma | .ecg.readonly
|
| battito cardiaco | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| irregular_rhythm_notifications | .irn.readonly
|
| località | .location.readonly
|
| alimentazione | .nutrition.readonly
.nutrition.writeonly |
| oxygen_saturation | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| profilo | .profile.readonly
.profile.writeonly |
| respiratory_rate | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| impostazioni | .settings.readonly
.settings.writeonly |
| sonno | .sleep.readonly
.sleep.writeonly |
| temperatura | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| peso | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
Tipi di dati
Di seguito è riportato un elenco dei tipi di dati dell'API Google Health e della loro mappatura all'API Fitbit Web.
| Tipo di dati dell'API Fitbit Web | Tipo di dati dell'API Google HealthdataType |
|---|---|
| Calorie attività | Energia bruciata attivaactive-energy-burned
|
| Minuti in zona attiva | Minuti in zona attivaactive-zone-minutes
|
| Contiene modifiche ai livelli di attività dell'utente | Livello di attivitàactivity-level
|
| Elevazione | Altitudinealtitude
|
| Glicemia | Glicemiablood-glucose
|
| Grasso corporeo | Grasso corporeobody-fat
|
caloriesOut in ogni zona del battito cardiaco |
Calorie nella zona battito cardiacocalories-in-heart-rate-zone
|
| Temperatura (interna) | Temperatura corporea internacore-body-temperature
|
| Riepilogo HRV | Variabilità del battito cardiaco giornalieradaily-heart-rate-variability
|
| Riepilogo SpO2 | Saturazione di ossigeno giornalieradaily-oxygen-saturation
|
| Battito cardiaco a riposo | Battito cardiaco a riposo giornalierodaily-resting-heart-rate
|
| Temperatura cutanea | Derivazioni della temperatura del sonno giornalieradaily-sleep-temperature-derivations
|
| Distanza | Distanzadistance
|
| Elettrocardiogramma (ECG) | Elettrocardiogramma (ECG)electrocardiogram
|
| Attività registrata | Allenamentoexercise
|
| Piani | Pianifloors
|
| Cibo | Cibofood
|
| Unità di misura dell'alimento | Unità di misura del cibofood-measurement-unit
|
| Frequenza cardiaca | Battito cardiacoheart-rate
|
| HRV infragiornaliero | Variabilità del battito cardiacoheart-rate-variability
|
| Notifiche di ritmo irregolare (IRN) | Notifica ritmo irregolareirregular-rhythm-notification
|
| Diario alimentare | Diario alimentarenutrition-log
|
| SpO2 infragiornaliero | Saturazione di ossigenooxygen-saturation
|
| Valore VO2 max quando l'utente corre | VO2 max corsarun-vo2-max
|
| Serie temporale di minuti di attività sedentaria | Periodo sedentariosedentary-period
|
| Sonno | Sonnosleep
|
| Passaggi | Passaggisteps
|
| Serie temporali dell'attività Bracciate | Dati sulle vascheswim-lengths-data
|
Attività caloriesOut |
Calorie totalitotal-calories
|
| Valore VO2 max | VO2 maxvo2-max
|
| Peso | Pesoweight
|
Endpoint
Gli endpoint REST adottano una sintassi coerente per tutti i tipi di dati.
- Endpoint di servizio: l'URL HTTP di base cambia in https://health.googleapis.com.
- Sintassi dell'endpoint: l'API Google Health supporta un numero limitato di endpoint, che possono essere utilizzati dalla maggior parte dei tipi di dati supportati. In questo modo viene fornita una sintassi coerente per tutti i tipi di dati e gli endpoint sono più facili da usare.
- Identificatore utente: nella sintassi dell'endpoint deve essere specificato l'ID utente o me. Quando mi utilizzi, lo User-ID viene dedotto dal token di accesso.
Esempio: ecco un esempio dell'endpoint GET Profile chiamato utilizzando l'API Google Health
GET https://health.googleapis.com/v4/users/me/profile
Mapping degli endpoint
Consulta la tabella Tipi di dati dell'API Google Health per un elenco dei tipi di dati disponibili e dei metodi API che supportano.
| Tipo di endpoint API Fitbit Web | API Google Health |
| GET (Log | Summary | Daily Summary) in cui richiedi un singolo giorno di dati | Metodo dailyRollup con windowSize = 1 giorno |
| GET (infragiornaliero) in cui richiedi dati granulari | Metodo list |
| GET (Time Series) by Date or Interval | Metodo rollUp o dailyRollUp che include un intervallo di date |
| GET (elenco log) | Metodo list |
| CREARE E AGGIORNARE i log | Metodo patch |
| DELETE Logs | Metodo batchDelete |
| GET Profile | users.getProfile restituisce le informazioni specifiche dell'utente
users.getSettings restituisce le unità e i fusi orari dell'utente |
| AGGIORNA Profilo | users.updateProfile modifica le informazioni specifiche dell'utente
users.updateSettings modifica le unità e i fusi orari dell'utente |
| Recuperare l'ID utente | users.getIdentity restituisce l'ID utente legacy di Fitbit e Google dell'utente. |
| Get Devices | users.pairedDevices restituisce l'elenco dei dispositivi accoppiati |
| Crea abbonamenti | projects.subscribers.subscriptions.create crea manualmente una sottoscrizione |
| Eliminare gli abbonamenti | projects.subscribers.subscriptions.delete elimina un abbonamento |
| Recupero elenco abbonamenti | projects.subscribers.subscriptions.list elenca tutti gli abbonamenti |