En la sección Especificación de la API, se proporciona una descripción general detallada de los componentes técnicos esenciales para la integración con la plataforma, incluidos los permisos de autorización, las definiciones de tipos de datos y las estructuras de endpoints. Esta API representa una evolución estratégica de la API de Fitbit Web heredada, que se reconstruyó sobre una infraestructura moderna para garantizar una experiencia de desarrollador más estable y coherente.
Permisos
Debes actualizar tu solicitud de autorización para usar los alcances de la API de Google Health. Los alcances definen si tu app admite operaciones de lectura o escritura. No uses permisos que no sean necesarios para tu app. Siempre puedes agregar más permisos más adelante si cambia el diseño de tu app.
Los permisos de la API de Google Health son URLs HTTP que comienzan con https://www.googleapis.com/auth/googlehealth.{scope}. Por ejemplo, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.
Asignaciones de alcance
A continuación, se muestra cómo se asignan los permisos de la API de Fitbit Web a los permisos de la API de Google Health:
| Permisos de la API de Fitbit Web | Permisos de la API de Google Health |
|---|---|
| actividad | .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 |
| Electrocardiograma | .ecg.readonly
|
| Frecuencia cardíaca | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| irregular_rhythm_notifications | .irn.readonly
|
| ubicación | .location.readonly
|
| nutrición | .nutrition.readonly
.nutrition.writeonly |
| oxygen_saturation | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| perfil | .profile.readonly
.profile.writeonly |
| respiratory_rate | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| configuración | .settings.readonly
.settings.writeonly |
| sleep | .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 |
Tipos de datos
A continuación, se incluye una lista de los tipos de datos de la API de Google Health y cómo se asignan a la API de Fitbit Web.
| Tipo de datos de la API de Fitbit Web | Tipo de datos de la API de Google HealthdataType |
|---|---|
| Calorías por actividad | Gasto calórico activoactive-energy-burned
|
| Minutos en zona activa | Minutos en Zona activaactive-zone-minutes
|
| Contiene cambios en los niveles de actividad del usuario | Nivel de actividadactivity-level
|
| Elevación | Altitudaltitude
|
| Glucemia | Glucemiablood-glucose
|
| Grasa corporal | Grasa corporalbody-fat
|
caloriesOut en cada zona de frecuencia cardíaca |
Calorías en la zona de frecuencia cardíacacalories-in-heart-rate-zone
|
| Temperatura (central) | Temperatura corporal centralcore-body-temperature
|
| Resumen del VFC | Variabilidad de la frecuencia cardíaca diariadaily-heart-rate-variability
|
| Resumen de SpO2 | Saturación de oxígeno diariadaily-oxygen-saturation
|
| Frecuencia cardíaca en reposo | Frecuencia cardíaca en reposo diariadaily-resting-heart-rate
|
| Temperatura cutánea | Derivaciones diarias de la temperatura durante el sueñodaily-sleep-temperature-derivations
|
| Distancia | Distanciadistance
|
| Electrocardiograma (ECG) | Electrocardiograma (ECG)electrocardiogram
|
| Actividad registrada | Ejercicioexercise
|
| Pisos | Pisosfloors
|
| Comida | Comidafood
|
| Unidad de medida del alimento | Unidad de medida de comidafood-measurement-unit
|
| Frecuencia cardíaca | Frecuencia cardíacaheart-rate
|
| VFC intradía | Variabilidad de la frecuencia cardíacaheart-rate-variability
|
| Notificaciones de arritmias (IRN) | Notificación de arritmiasirregular-rhythm-notification
|
| Registro de alimentos | Registro de nutriciónnutrition-log
|
| SpO2 intradía | Saturación de oxígenooxygen-saturation
|
| Valor del VO2 máx. cuando el usuario corre | VO2 máx. en carrerasrun-vo2-max
|
| Serie temporal de actividad en minutos sedentarios | Período sedentariosedentary-period
|
| Sueño | Sueñosleep
|
| Pasos | Pasossteps
|
| Series temporales de actividad de brazadas de natación | Datos de largosswim-lengths-data
|
Actividad caloriesOut |
Calorías totalestotal-calories
|
| Valor de VO2 máx. | VO2 máx.vo2-max
|
| Peso | Pesoweight
|
Extremos
Los extremos de REST adoptan una sintaxis coherente para todos los tipos de datos.
- Extremo de servicio: La URL HTTP base cambia a https://health.googleapis.com.
- Sintaxis del extremo: La API de Google Health admite una cantidad limitada de extremos, que pueden usar la mayoría de los tipos de datos admitidos. Esto proporciona una sintaxis coherente para todos los tipos de datos y facilita el uso de los extremos.
- Identificador de usuario: Se debe especificar el ID de usuario o el identificador me en la sintaxis del extremo. Cuando se usa, el ID del usuario se infiere del token de acceso.
Ejemplo: A continuación, se muestra un ejemplo del extremo GET Profile llamado con la API de Google Health
GET https://health.googleapis.com/v4/users/me/profile
Asignaciones de extremos
Consulta la tabla de tipos de datos de la API de Google Health para obtener una lista de los tipos de datos disponibles y los métodos de la API que admiten.
| Tipo de extremo de la API web de Fitbit | API de Google Health |
| GET (Log | Summary | Daily Summary) cuando solicitas datos de un solo día | Método dailyRollup con windowSize = 1 día |
| GET (intradía) cuando solicitas datos detallados | Método list |
| GET (series temporales) por fecha o intervalo | Método rollUp o dailyRollUp que incluye un período |
| GET (lista de registros) | Método list |
| Registros de CREATE y UPDATE | Método patch |
| Borrar registros | Método batchDelete |
| GET Profile | users.getProfile devuelve la información específica del usuario.
users.getSettings devuelve las unidades y las zonas horarias del usuario. |
| ACTUALIZAR perfil | users.updateProfile modifica la información específica del usuario.
users.updateSettings modifica las unidades y las zonas horarias del usuario. |
| Obtener el ID de usuario | users.getIdentity devuelve el ID de usuario heredado de Fitbit y el ID de usuario de Google. |
| Get Devices | users.pairedDevices devuelve la lista de dispositivos vinculados. |
| Crear suscripciones | projects.subscribers.subscriptions.create crea manualmente una suscripción. |
| Borrar suscripciones | projects.subscribers.subscriptions.delete borra una suscripción |
| Obtener lista de suscripciones | projects.subscribers.subscriptions.list enumera todas las suscripciones. |