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 extremos. Esta API representa una evolución estratégica de la API de Fitbit Web heredada, que se reconstruyó en una infraestructura moderna para garantizar una experiencia del desarrollador más estable y coherente.
Permisos
Debes actualizar tu solicitud de autorización para usar los permisos de la API de Google Health. Los permisos definen si tu app admite operaciones de lectura o escritura. Sigue las instrucciones de implementación de permisos, que especifican que solo se soliciten los permisos necesarios, que se configure el acceso de escritura solo cuando se envíen datos y que se controle el consentimiento parcial de forma correcta.
Los permisos de la API de Google Health son una URL HTTP que comienza con https://www.googleapis.com/auth/googlehealth.{scope}. Por ejemplo, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.
Asignaciones de permisos
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 |
| electrocardiogram | .ecg.readonly
|
| heartrate | .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 muestra una lista de los tipos de datos de la API de Google Health y cómo se asignan a la API de Fitbit Web.
Para obtener más información sobre cómo se informan los datos para estos tipos, consulta la guía Presencia de datos y ceros verdaderos. Esta guía incluye detalles sobre la inactividad y el filtrado en la muñeca.
| Tipo de datos de la API de Fitbit Web | Tipo de datos de la API de Google HealthdataType |
|---|---|
| Calorías de actividad | Calorías activas quemadasactive-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 (principal) | Temperatura corporal principalcore-body-temperature
|
| Resumen de HRV | Variabilidad diaria del ritmo cardíacodaily-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 del sueñodaily-sleep-temperature-derivations
|
| Distancia | Distanciadistance
|
| Electrocardiograma (ECG) | Electrocardiograma (ECG)electrocardiogram
|
| Actividad registrada | Ejercicioexercise
|
| Pisos | Pisosfloors
|
| Comida | Comidafood
|
| Comida | Comidafood
|
| Unidad de medida de alimentos | Unidad de medida de alimentosfood-measurement-unit
|
| Unidad de medida de alimentos | Unidad de medida de alimentosfood-measurement-unit
|
| Frecuencia cardíaca | Frecuencia cardíacaheart-rate
|
| HRV intradía | Variabilidad del ritmo cardíacoheart-rate-variability
|
| Notificaciones de arritmias (IRN) | Notificación de arritmiasirregular-rhythm-notification
|
| Registro de alimentos | Registro de nutriciónnutrition-log
|
| Registro de alimentos | Registro de nutriciónnutrition-log
|
| SpO2 intradía | Saturación de oxígenooxygen-saturation
|
| Valor de VO2 máx. cuando el usuario corre | VO2 máx. en carrerasrun-vo2-max
|
| Minutos de series temporales de actividad sedentaria | Período sedentariosedentary-period
|
| Sueño | Sueñosleep
|
| Pasos | Pasossteps
|
| Brazadas de natación de series temporales de actividad | Datos de largos de nataciónswim-lengths-data
|
caloriesOut de actividad |
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 de extremos: La API de Google Health admite una cantidad limitada de extremos, que pueden usar la mayoría de los tipos de datos compatibles. 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 yo en la sintaxis del extremo. Cuando se usa yo, el ID de usuario se infiere del token de acceso.
Ejemplo: Este es un ejemplo del extremo GET Profile al que se llama 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 API que admiten.
| Tipo de extremo de la API de Fitbit Web | API de Google Health |
| GET (Registro | Resumen | Resumen diario) en el que solicitas un solo día de datos | Método dailyRollup con windowSize = 1 día |
| GET (Intradía) en el que 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 |
| CREAR y ACTUALIZAR registros | Método patch |
| BORRAR registros | Método batchDelete |
| OBTENER perfil | users.getProfile muestra la información específica del usuario.
users.getSettings muestra 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 ID de usuario | users.getIdentity muestra el ID de usuario heredado de Fitbit y de Google |
| Obtener dispositivos | users.pairedDevices muestra la lista de dispositivos vinculados. |
| Crear suscripciones | projects.subscribers.subscriptions.create crea una suscripción de forma manual. |
| Borrar suscripciones | projects.subscribers.subscriptions.delete borra una suscripción. |
| Obtener lista de suscripciones | projects.subscribers.subscriptions.list enumera todas las suscripciones. |