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, reconstruída em uma infraestrutura moderna para garantir uma experiência de desenvolvedor mais estável e consistente.
Escopos
Você precisa atualizar sua 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. Não use escopos que não são necessários para seu app. Você sempre pode adicionar mais escopos depois, se o design do app mudar.
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.
| Tipo de dados da API Fitbit Web | Tipo de dados da API Google HealthdataType |
|---|---|
| Calorias de atividade | Calorias queimadas ativasactive-energy-burned
|
| Minutos na faixa ativa | Minutos na faixa ativaactive-zone-minutes
|
| Contém mudanças nos níveis de atividade do usuário. | Nível de atividadeactivity-level
|
| Elevação | Altitudealtitude
|
| Glicemia | Glicose no sangueblood-glucose
|
| Gordura corporal | Gordura corporalbody-fat
|
caloriesOut em cada faixa de frequência cardíaca |
Calorias na zona de frequência cardíacacalories-in-heart-rate-zone
|
| Temperatura (interna) | Temperatura corporal centralcore-body-temperature
|
| Resumo da VFC | Variabilidade diária da frequência cardíacadaily-heart-rate-variability
|
| Resumo de SpO₂ | Saturação de oxigênio diáriadaily-oxygen-saturation
|
| Frequência cardíaca em repouso | Frequência cardíaca em repouso diáriadaily-resting-heart-rate
|
| Temperatura da pele | Derivações diárias da temperatura do sonodaily-sleep-temperature-derivations
|
| Distância | Distânciadistance
|
| Eletrocardiograma (ECG) | Eletrocardiograma (ECG)electrocardiogram
|
| Atividade gravada | Exercícioexercise
|
| Andares | Andaresfloors
|
| Comida | Comidafood
|
| Unidade de medida de alimentos | Unidade de medida de alimentosfood-measurement-unit
|
| Frequência cardíaca | Frequência cardíacaheart-rate
|
| VFC intradiária | Variabilidade da frequência cardíacaheart-rate-variability
|
| Notificações de ritmo irregular (NRI) | Notificação de ritmo irregularirregular-rhythm-notification
|
| Registro de alimentos | Registro de alimentaçãonutrition-log
|
| SPO₂ intradiário | Saturação de oxigêniooxygen-saturation
|
| Valor de VO₂ máximo quando o usuário corre | VO₂ máx. da corridarun-vo2-max
|
| Série temporal de atividade: minutos sedentários | Período sedentáriosedentary-period
|
| Sono | Dormirsleep
|
| Etapas | Etapassteps
|
| Braçadas de natação em série temporal de atividade | Dados de extensão de nataçãoswim-lengths-data
|
Atividade caloriesOut |
Total de caloriastotal-calories
|
| Valor de VO₂ máx. | VO₂ máx.vo2-max
|
| Peso | Pesoweight
|
Endpoints
Os endpoints REST adotam uma sintaxe consistente para todos os tipos de dados.
- Endpoint de serviço: o URL HTTP de base muda para https://health.googleapis.com.
- Sintaxe de endpoint: a API Google Health é compatível com um número limitado de endpoints, que podem ser usados pela maioria dos tipos de dados aceitos. 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 "eu" 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 Tipos de dados da API Google Health para ver uma lista dos tipos de dados disponíveis e os métodos da API que eles oferecem suporte.
| Tipo de endpoint da API Fitbit Web | API Google Health |
| GET (Log | Summary | Daily Summary) 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 |
| ATUALIZAR perfil | 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 o ID do usuário | O users.getIdentity retorna o ID de usuário legado do Fitbit e do Google do usuário. |
| Receber dispositivos | users.pairedDevices retorna a lista de dispositivos pareados |
| Criar assinaturas | projects.subscribers.subscriptions.create cria manualmente uma assinatura |
| Excluir assinaturas | projects.subscribers.subscriptions.delete exclui uma assinatura |
| Receber lista de assinaturas | projects.subscribers.subscriptions.list lista todas as assinaturas |