En esta guía, se explica cómo solucionar problemas comunes cuando se usa la API de Google Health.
4xx errores de cliente
Los códigos de estado 4xx se muestran cuando hay un problema en el código de la app cliente. Consulta los elementos del cuerpo de la respuesta para obtener más información sobre el problema.
400 Bad Request
| Mensaje | Descripción | Recomendación |
|---|---|---|
| La solicitud contiene un argumento no válido. | No se admite el ID de tipo de datos {value}. | Verifica que el tipo de datos al que se hace referencia sea compatible con el extremo. |
| Se recibió una carga útil de JSON no válido. Los números octales o hexadecimales no son valores JSON válidos. | El extremo dailyRollUp no admite valores de mes y día representados como MM o DD, respectivamente. Los dígitos únicos no deben tener un 0 (cero) inicial. |
|
| Número de proyecto no válido en el nombre del recurso | Cuando borras o actualizas un suscriptor con el ID del proyecto de Google Cloud en la URL de la solicitud en lugar del número de proyecto. Esto se aplica a las suscripciones de webhook que usan el extremo projects.subscribers. |
Usa el número de tu proyecto de Google Cloud en la URL de la solicitud, no el ID del proyecto. |
401 Sin autorización
| Mensaje | Descripción | Recomendación |
|---|---|---|
| La solicitud tenía credenciales de autenticación no válidas. Se esperaba un token de acceso de OAuth 2, una cookie de acceso o alguna otra credencial de autenticación válida. | INVALID_AUTHENTICATOR: Token vencido | Tu token de acceso venció. Usa el token de actualización para obtener un nuevo token de acceso y de actualización, o bien el usuario debe volver a dar su consentimiento a la aplicación. |
403 Forbidden
| Mensaje | Descripción | Recomendación |
|---|---|---|
| El emisor no tiene permiso | Cuando creas o enumeras suscriptores con el ID de tu proyecto de Google Cloud en la URL de la solicitud en lugar del número de proyecto. Esto se aplica a las suscripciones de webhook que usan el extremo projects.subscribers. |
Usa el número de tu proyecto de Google Cloud en la URL de la solicitud, no el ID del proyecto. |
| El emisor no tiene permisos. | No se pudo crear UberMint a partir de GaiaMint. | El usuario pudo completar el flujo de autorización, pero falló la llamada al extremo. Esto puede ocurrir cuando una cuenta de Fitbit heredada da su consentimiento a la app en lugar de una Cuenta de Google. Para resolver este error, haz lo siguiente:
|
404 No encontrado
| Mensaje | Descripción | Recomendación |
|---|---|---|
No se encontró la URL solicitada /v4/users/me/dataTypes/{dataType}/dataPoints en este servidor. |
Causas posibles:
|
Cómo recuperar un ID de usuario de Fitbit
Para solucionar un problema del usuario, es posible que debas verificar la Cuenta de Google del usuario que accedió a la app de Fitbit para dispositivos móviles.
Para encontrar el ID de usuario de Fitbit, haz lo siguiente:
- Abre la app de Fitbit para dispositivos móviles.
- Presiona el ícono Tú en la esquina inferior derecha.
- Presiona el vínculo Editar perfil en el mosaico superior que contiene el nombre del usuario y la fecha de unión.
- Ve a la parte inferior de la página. En la sección Tu cuenta, el valor asignado al ID es el ID de usuario de Fitbit (por ejemplo, CV5TKH).
Cómo revocar el consentimiento de una app
Cuando ayudes a un usuario a solucionar problemas con su conexión OAuth2 a tu app, es posible que debas pedirle que desvincule su cuenta de tu app y, luego, que vuelva a completar tu flujo de autorización.
Para desvincular su Cuenta de Google de tu app, haz lo siguiente:
- Abre la app de Fitbit para dispositivos móviles.
- Presiona el ícono de perfil de usuario de Fitbit en la esquina superior derecha.
- Presiona Administrar tu Cuenta de Google.
- Selecciona el mosaico Datos y privacidad.
- Desplázate hasta la sección **Datos de las apps y los servicios que usas**. En Apps y servicios, selecciona Apps y servicios de terceros.
- Busca el nombre de tu app en la lista de apps conectadas y haz que el usuario la seleccione.
- Presiona Borrar todas las conexiones que tengas con <nombre de la app>.
- Haz que el usuario presione Confirmar para revocar el consentimiento de tu app.
Cuando se complete el proceso de revocación, se volverá a dirigir al usuario a la lista de la página Apps y servicios de terceros. Es posible que el usuario deba actualizar la página para ver el nombre de la app quitado de la lista.
Cómo solucionar problemas de retrasos en la sincronización de dispositivos
Cuando depuras problemas relacionados con datos de usuario faltantes o retrasados, es útil verificar el modelo del dispositivo vinculado del usuario y su última fecha de sincronización.
La información del modelo (como un modelo de smartwatch o dispositivo de seguimiento de Fitbit) y la última fecha de sincronización son útiles para solucionar problemas y recuperar datos históricos después de los retrasos en la sincronización.
Por ejemplo, si notas una brecha o un retraso inesperado en la entrega de datos, haz lo siguiente:
- Verifica que el ID de usuario que consultas coincida con el ID de usuario de la cuenta de Fitbit
a la que se accedió en la app para dispositivos móviles. Para obtener el ID de usuario en la app para dispositivos
móviles, consulta Cómo recuperar un ID de usuario de Fitbit.
Para obtener el ID de usuario del token de acceso, llama al
getIdentityextremo. - Verifica la última hora de sincronización para determinar cuándo se sincronizó por última vez el dispositivo del usuario con la app de Google Health para dispositivos móviles.
- Si el dispositivo no se sincronizó recientemente, indica que el retraso probablemente se deba a que el dispositivo está sin conexión o no se sincroniza con la aplicación para dispositivos móviles, en lugar de un problema de la API.
- Una vez que el usuario abra la aplicación para dispositivos móviles y sincronice su dispositivo, podrás recuperar los datos históricos del período desde la última hora de sincronización.
Para recuperar la información del dispositivo vinculado de un usuario, llama al
users.pairedDevices.list
extremo. Esto muestra una lista de dispositivos que contiene lo siguiente:
deviceVersion: El nombre del producto o el modelo del dispositivo (por ejemplo, "Charge 6").lastSyncTime: La marca de tiempo de la última sincronización correcta.