Solução de problemas

Este guia explica como resolver problemas comuns ao usar a API Google Health.

4xx (erros de cliente)

Os códigos de status 4xx são retornados quando há um problema no código do app cliente. Consulte os elementos do corpo da resposta para mais informações sobre o problema.

400 Solicitação inválida

Mensagem Descrição Recomendação
A solicitação contém um argumento inválido. O ID do tipo de dados {value} não é aceito. Verifique se o tipo de dados referenciado é aceito pelo endpoint.
O payload JSON recebido é inválido. Números octais/hexadecimais não são valores JSON válidos. O endpoint dailyRollUp não aceita valores de mês e dia representados como MM ou DD, respectivamente. Os dígitos únicos não podem ter um 0 (zero) à esquerda.
Número de projeto inválido no nome do recurso Ao excluir ou atualizar um assinante usando o ID do projeto do Google Cloud no URL da solicitação em vez do número do projeto. Isso se aplica a assinaturas de webhook usando o endpoint projects.subscribers. Use o número do projeto do Google Cloud no URL da solicitação, não o ID do projeto.

401 Não autorizado

Mensagem Descrição Recomendação
A solicitação tinha credenciais de autenticação inválidas. Use o token de acesso esperado do OAuth 2, o cookie de login correto ou outra credencial de autenticação válida. INVALID_AUTHENTICATOR: Token expirado Seu token de acesso expirou. Use o token de atualização para receber um novo token de acesso e de atualização ou peça ao usuário para dar consentimento novamente ao aplicativo.

403 Proibido

Mensagem Descrição Recomendação
O autor da chamada não tem permissão Ao criar ou listar assinantes usando o ID do projeto do Google Cloud no URL da solicitação em vez do número do projeto. Isso se aplica a assinaturas de webhook usando o endpoint projects.subscribers. Use o número do projeto do Google Cloud no URL da solicitação, não o ID do projeto.
O autor da chamada não tem permissão. Não foi possível cunhar UberMint do GaiaMint.

O usuário conseguiu concluir o fluxo de autorização, mas a chamada do endpoint falhou. Isso pode ocorrer quando uma conta legada do Fitbit dá consentimento ao app em vez de uma Conta do Google. Para resolver esse erro:

  1. Saia do app Fitbit móvel nas configurações do Fitbit.
  2. Faça login no app Fitbit móvel pressionando o botão "Continuar com o Google" ou "Fazer login com o Google". Se você receber uma mensagem informando que "Não é possível usar o Fitbit com essa Conta do Google", seu endereço de e-mail ainda está registrado como uma conta legada do Fitbit. Siga as etapas neste artigo da Central de Ajuda para migrar sua conta.

404 Não encontrado

Mensagem Descrição Recomendação
O URL solicitado /v4/users/me/dataTypes/{dataType}/dataPoints não foi encontrado neste servidor. Possíveis causas:
  • Verifique se o verbo correto está sendo usado.
  • Verifique se há erros de digitação na sintaxe do endpoint.

Recuperar um ID de usuário do Fitbit

Para ajudar a resolver um problema do usuário, talvez seja necessário verificar a Conta do Google do usuário conectado ao app Fitbit para dispositivos móveis.

Para encontrar o ID de usuário do Fitbit:

  1. Abra o app Fitbit móvel.
  2. Pressione o ícone Você no canto inferior direito.
  3. Pressione o link Editar perfil no bloco superior que contém o nome do usuário e a data de adesão.
  4. Acesse a parte inferior da página. Na seção Sua conta, o valor atribuído ao ID é o ID de usuário do Fitbit. Por exemplo: CV5TKH

Ao ajudar um usuário a resolver problemas de conexão OAuth2 com seu app, talvez seja necessário desvincular a conta do app e concluir o fluxo de autorização novamente.

Para desvincular a Conta do Google do seu app:

  1. Abra o app Fitbit móvel.
  2. Pressione o ícone de perfil do usuário do Fitbit no canto superior direito.
  3. Pressione Gerenciar sua Conta do Google.
  4. Selecione o bloco Dados e privacidade.
  5. Role para baixo até a seção **Dados de apps e serviços que você usa**. Em Apps e serviços, selecione Apps e serviços de terceiros.
  6. Procure o nome do seu app na lista de apps conectados e peça ao usuário para selecioná-lo.
  7. Pressione Excluir todas as conexões com <nome do app>.
  8. Peça ao usuário para confirmar a revogação do consentimento do seu app.

Quando o processo de revogação for concluído, o usuário será redirecionado para a lista de Apps e serviços de terceiros. Talvez seja necessário atualizar a página para que o nome do app seja removido da lista.

Resolver problemas de atrasos na sincronização de dispositivos

Ao depurar problemas relacionados a dados de usuários ausentes ou atrasados, é útil verificar o modelo do dispositivo pareado do usuário e a última data de sincronização.

As informações do modelo (como um rastreador ou smartwatch do Fitbit) e a última data de sincronização são úteis para resolver problemas e buscar dados históricos após atrasos na sincronização.

Por exemplo, se você notar uma lacuna ou atraso inesperado na entrega de dados:

  1. Verifique se o ID do usuário que você está consultando corresponde ao ID da conta do Fitbit conectada ao app para dispositivos móveis. Para acessar o ID do usuário no app para dispositivos móveis, consulte Recuperar um ID de usuário do Fitbit. Para acessar o ID do usuário no token de acesso, chame o getIdentity endpoint.
  2. Verifique a última hora de sincronização para determinar quando o dispositivo do usuário foi sincronizado pela última vez com o app Google Health para dispositivos móveis.
  3. Se o dispositivo não foi sincronizado recentemente, isso indica que o atraso provavelmente é devido ao dispositivo estar off-line ou não sincronizar com o aplicativo para dispositivos móveis, em vez de um problema de API.
  4. Depois que o usuário abrir o aplicativo para dispositivos móveis e sincronizar o dispositivo, você poderá buscar dados históricos do período desde a última hora de sincronização.

Para recuperar as informações do dispositivo pareado de um usuário, chame o users.pairedDevices.list endpoint. Isso retorna uma lista de dispositivos que contém:

  • deviceVersion: o nome do produto ou modelo do dispositivo (por exemplo, "Charge 6").
  • lastSyncTime: o carimbo de data/hora da última sincronização bem-sucedida.