A seção "Especificação da API" oferece uma visão geral detalhada dos componentes técnicos essenciais para a integração com a plataforma, incluindo escopos de autorização, definições de tipo de dados e estruturas de endpoint. Essa API representa uma evolução estratégica da API Fitbit Web legada, recriada em uma infraestrutura moderna para garantir uma experiência de desenvolvedor mais estável e consistente.
Escopos
É necessário atualizar a solicitação de autorização para usar os escopos da API Google Health. Os escopos definem se o app oferece suporte a operações de leitura ou gravação. Siga as instruções de implementação de escopo, que especificam apenas a solicitação dos escopos necessários, a configuração do acesso de gravação somente ao enviar dados e o tratamento adequado do consentimento parcial.
Os escopos da API Google Health são um URL HTTP que começa com https://www.googleapis.com/auth/googlehealth.{scope}. Por exemplo, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.
Mapeamentos de escopo
Confira como os escopos da API Fitbit Web são mapeados para os escopos da API Google Health:
| Escopos da API Fitbit Web | Escopos da API Google Health |
|---|---|
| atividade | .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 |
| eletrocardiograma | .ecg.readonly
|
| frequência cardíaca | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| irregular_rhythm_notifications | .irn.readonly
|
| local | .location.readonly
|
| nutrição | .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 |
| configurações | .settings.readonly
.settings.writeonly |
| sono | .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 dados
Confira uma lista dos tipos de dados da API Google Health e como eles são mapeados para a API Fitbit Web.
Para mais informações sobre como os dados são informados para esses tipos, consulte o guia Presença de dados e zeros verdadeiros. Esse guia inclui detalhes sobre inatividade e filtragem no pulso.
| Tipo de dados da API Fitbit Web | Tipo de dados da API Google HealthdataType |
|---|---|
| Activity Calories | Active Energy Burnedactive-energy-burned
|
| Minutos na faixa ativa | Active Zone Minutesactive-zone-minutes
|
| Contém mudanças nos níveis de atividade do usuário | Activity Levelactivity-level
|
| Elevação | Altitudealtitude
|
| Glicemia | Blood Glucoseblood-glucose
|
| Gordura corporal | Body Fatbody-fat
|
caloriesOut em cada faixa de frequência cardíaca |
Calories In Heart Rate Zonecalories-in-heart-rate-zone
|
| Temperatura (interna) | Core Body Temperaturecore-body-temperature
|
| Resumo de HRV | Variabilidade da frequência cardíaca diáriadaily-heart-rate-variability
|
| Resumo de SpO2 | Daily Oxygen Saturationdaily-oxygen-saturation
|
| Frequência cardíaca em repouso | Frequência cardíaca em repouso diáriadaily-resting-heart-rate
|
| Temperatura da pele | Daily Sleep Temperature Derivationsdaily-sleep-temperature-derivations
|
| Distância | Distancedistance
|
| Eletrocardiograma (ECG) | Electrocardiogram (ECG)electrocardiogram
|
| Atividade de gravação | Exerciseexercise
|
| Andares | Floorsfloors
|
| Comida | Foodfood
|
| Comida | Foodfood
|
| Unidade de medida de alimentos | Food Measurement Unitfood-measurement-unit
|
| Unidade de medida de alimentos | Food Measurement Unitfood-measurement-unit
|
| Frequência cardíaca | Heart Rateheart-rate
|
| HRV Intraday | Variabilidade da frequência cardíacaheart-rate-variability
|
| Notificações de ritmo irregular (IRN) | Irregular Rhythm Notificationirregular-rhythm-notification
|
| Registro de alimentos | Nutrition Lognutrition-log
|
| Registro de alimentos | Nutrition Lognutrition-log
|
| SpO2 Intraday | Oxygen Saturationoxygen-saturation
|
| Valor de VO2 máx. quando o usuário corre | Run VO2 Maxrun-vo2-max
|
| Minutos sedentários da série temporal de atividades | Sedentary Periodsedentary-period
|
| Sono | Sleepsleep
|
| Etapas | Stepssteps
|
| Série temporal de atividades de natação | Swim Lengths Dataswim-lengths-data
|
caloriesOut da atividade |
Total Caloriestotal-calories
|
| Valor de VO2 máx. | VO2 Maxvo2-max
|
| Peso | Weightweight
|
Endpoints
Os endpoints REST adotam uma sintaxe consistente para todos os tipos de dados.
- Endpoint de serviço: o URL HTTP base muda para https://health.googleapis.com.
- Sintaxe de endpoint: a API Google Health oferece suporte a um número limitado de endpoints, que podem ser usados pela maioria dos tipos de dados compatíveis. Isso fornece uma sintaxe consistente para todos os tipos de dados e facilita o uso dos endpoints.
- Identificador do usuário: o ID do usuário ou "me" precisa ser especificado na sintaxe do endpoint. Ao usar "me", o ID do usuário é inferido do token de acesso.
Exemplo: confira um exemplo do endpoint GET Profile chamado usando a API Google Health
GET https://health.googleapis.com/v4/users/me/profile
Mapeamentos de endpoint
Consulte a tabela de tipos de dados da API Google Health para conferir uma lista dos tipos de dados disponíveis e os métodos de API que eles oferecem suporte.
| Tipo de endpoint da API Fitbit Web | API Google Health |
| GET (registro | resumo | resumo diário) em que você está solicitando um único dia de dados | Método dailyRollup com windowSize = 1 dia |
| GET (intraday) em que você está solicitando dados granulares | Método list |
| GET (série temporal) por data ou intervalo | Método rollUp ou dailyRollUp incluindo um período |
| GET (lista de registros) | Método list |
| CRIAR E ATUALIZAR registros | Método patch |
| EXCLUIR registros | Método batchDelete |
| GET Profile | users.getProfile retorna as informações específicas do usuário
users.getSettings retorna as unidades e os fusos horários do usuário |
| UPDATE Profile | users.updateProfile modifica as informações específicas do usuário
users.updateSettings modifica as unidades e os fusos horários do usuário |
| Receber ID do usuário | users.getIdentity retorna o ID do usuário legado do Fitbit e do Google user ID. |
| Receber dispositivos | users.pairedDevices retorna a lista de dispositivos pareados |
| Criar assinaturas | projects.subscribers.subscriptions.create cria uma assinatura manualmente |
| Excluir assinaturas | projects.subscribers.subscriptions.delete exclui uma assinatura |
| Receber lista de assinaturas | projects.subscribers.subscriptions.list lista todas as assinaturas |