이 가이드에서는 Google Health API를 사용할 때 발생하는 일반적인 문제를 해결하는 방법을 설명합니다.
4xx 클라이언트 오류
클라이언트 앱 코드에 문제가 있으면 4xx 상태 코드가 반환됩니다. 문제에 관한 자세한 내용은 응답 본문 요소를 살펴보세요.
400 잘못된 요청
| 메시지 | 설명 | 권장사항 |
|---|---|---|
| 요청에 잘못된 인수가 포함되어 있습니다. | {value} 데이터 유형 ID는 지원되지 않습니다. | 참조되는 데이터 유형이 엔드포인트에서 지원되는지 확인합니다. |
| 잘못된 JSON 페이로드가 수신되었습니다. 8진수/16진수는 유효한 JSON 값이 아닙니다. | dailyRollUp 엔드포인트는 각각 MM 또는 DD로 표시되는 월 및 일 값을 지원하지 않습니다. 한 자리 숫자는 앞에 0을 붙이면 안 됩니다. |
|
| 리소스 이름의 프로젝트 번호가 잘못되었습니다. | 프로젝트 번호 대신 요청 URL에서 Google Cloud 프로젝트 ID를 사용하여 구독자를 삭제하거나 업데이트할 때. 이는 projects.subscribers 엔드포인트를 사용하는 웹훅 구독에 적용됩니다. |
프로젝트 ID가 아닌 요청 URL에서 Google Cloud 프로젝트 번호를 사용합니다. |
401 승인되지 않음
| 메시지 | 설명 | 권장사항 |
|---|---|---|
| 요청에 잘못된 사용자 인증 정보가 있습니다. OAuth 2 액세스 토큰, 로그인 쿠키 또는 기타 유효한 사용자 인증 정보가 있어야 합니다. | INVALID_AUTHENTICATOR: 토큰이 만료되었습니다. | 액세스 토큰이 만료되었습니다. 갱신 토큰을 사용하여 새 액세스 토큰 및 갱신 토큰을 가져오거나 사용자가 애플리케이션에 다시 동의해야 합니다. |
403 금지됨
| 메시지 | 설명 | 권장사항 |
|---|---|---|
| 호출자에게 권한이 없습니다 | 프로젝트 번호 대신 요청 URL에서 Google Cloud 프로젝트 ID를 사용하여 구독자를 만들거나 나열할 때. 이는 projects.subscribers 엔드포인트를 사용하는 웹훅 구독에 적용됩니다. |
프로젝트 ID가 아닌 요청 URL에서 Google Cloud 프로젝트 번호를 사용합니다. |
| 호출자에게 권한이 없습니다. | GaiaMint에서 UberMint를 생성할 수 없습니다. | 사용자가 승인 흐름을 완료할 수 있었지만 엔드포인트 호출이 실패했습니다. 이는 Google 계정 대신 기존 Fitbit 계정이 앱에 동의할 때 발생할 수 있습니다. 이 오류를 해결하려면 다음 단계를 따르세요.
|
404 Not Found
| 메시지 | 설명 | 권장사항 |
|---|---|---|
요청된 URL /v4/users/me/dataTypes/{dataType}/dataPoints가 이 서버에 없습니다. |
가능한 원인:
|
Fitbit 사용자 ID 가져오기
사용자 문제를 해결하려면 Fitbit 모바일 앱에 로그인한 사용자의 Google 계정을 확인해야 할 수 있습니다.
Fitbit 사용자 ID를 찾는 방법은 다음과 같습니다.
- Fitbit 모바일 앱을 엽니다.
- 오른쪽 하단에 있는 나 아이콘을 누릅니다.
- 사용자 이름과 가입 날짜가 포함된 상단 타일에 있는 프로필 수정 링크를 누릅니다.
- 페이지 하단으로 이동합니다. 내 계정 섹션에서 ID에 할당된 값 이 Fitbit 사용자 ID입니다. (예: CV5TKH)
앱에 대한 동의 취소
사용자가 앱에 대한 OAuth2 연결 문제를 해결하도록 지원할 때 사용자가 앱에서 계정을 연결 해제한 후 승인 흐름을 다시 완료해야 할 수 있습니다.
앱에서 Google 계정을 연결 해제하는 방법은 다음과 같습니다.
- Fitbit 모바일 앱을 엽니다.
- 오른쪽 상단에 있는 Fitbit 사용자 프로필 아이콘을 누릅니다.
- Google 계정 관리 를 누릅니다.
- 데이터 및 개인 정보 보호 타일을 선택합니다.
- **사용하는 앱 및 서비스의 데이터** 섹션으로 이동합니다. 앱 및 서비스에서 서드 파티 앱 및 서비스를 선택합니다.
- 연결된 앱 목록에서 앱 이름을 찾아 사용자가 선택하도록 합니다.
- <앱 이름>과 연결된 모든 연결 삭제 를 누릅니다.
- 사용자가 확인을 눌러 앱에 대한 동의를 취소하도록 합니다.
취소 프로세스가 완료되면 사용자는 서드 파티 앱 및 서비스 페이지 목록으로 돌아갑니다. 사용자가 목록에서 앱 이름이 삭제된 것을 보려면 페이지를 새로고침해야 할 수 있습니다.
기기 동기화 지연 문제 해결
사용자 데이터 누락 또는 지연과 관련된 문제를 디버깅할 때는 사용자의 페어링된 기기 모델과 마지막 동기화 날짜를 확인하는 것이 좋습니다.
모델 정보 (예: Fitbit 트래커 또는 스마트워치 모델)와 마지막 동기화 날짜는 동기화 지연 후 문제를 해결하고 이전 데이터를 가져오는 데 유용합니다.
예를 들어 데이터 전송에 예기치 않은 간격 또는 지연이 발생하는 경우 다음 단계를 따르세요.
- 쿼리하는 사용자 ID가 모바일 앱에 로그인한 Fitbit
계정의 사용자 ID와 일치하는지 확인합니다. 모바일
앱에서 사용자 ID를 가져오려면 Fitbit 사용자 ID 가져오기를 참고하세요.
액세스 토큰에서 사용자 ID를 가져오려면
getIdentity엔드포인트를 호출합니다. - 마지막 동기화 시간을 확인하여 사용자의 기기가 Google Health 모바일 앱과 마지막으로 동기화된 시점을 확인합니다.
- 기기가 최근에 동기화되지 않은 경우 API 문제가 아니라 기기가 오프라인 상태이거나 모바일 애플리케이션과 동기화되지 않아 지연이 발생했을 가능성이 큽니다.
- 사용자가 모바일 애플리케이션을 열고 기기를 동기화하면 마지막 동기화 시간 이후의 이전 데이터를 가져올 수 있습니다.
사용자의 페어링된 기기 정보를 가져오려면
users.pairedDevices.list
엔드포인트를 호출합니다. 그러면 다음이 포함된 기기 목록이 반환됩니다.
deviceVersion: 기기의 제품 이름 또는 모델 (예: 'Charge 6').lastSyncTime: 마지막으로 동기화가 성공한 타임스탬프.