Google Health API는 개발자가 Fitbit 사용자 데이터를 쿼리할 수 있도록 처음부터 빌드된 새로운 API입니다. 이것은 단순한 업데이트가 아니라 앱이 안전하고 안정적이며 향후 건강 기술 발전에 대비할 수 있도록 하는 전략적 조치입니다. API는 앱 등록을 위한 새로운 콘솔, Google OAuth 2.0 지원, 새로운 데이터 유형, 새로운 엔드포인트 스키마, 새로운 응답 형식을 지원합니다.
이 가이드는 개발자가 기존 Fitbit Web API 앱을 새로운 Google Health API로 이전하는 데 도움이 되도록 설계되었습니다.
이전해야 하는 이유
Google Health API를 사용하면 다음과 같은 이점이 있습니다.
- 보안 강화: Google의 보안 권장사항을 준수하고 Google의 보안, 개인 정보 보호, ID 표준을 준수합니다.
- 일관성: 데이터 형식, 시간 대, 측정 단위, 오류 처리의 기존 불일치를 없애 개발자 환경을 더욱 직관적으로 만듭니다.
- 확장성 및 미래 대비: 향후 요구사항을 충족하도록 확장할 수 있도록 설계되었으며 gRPC와 같은 최신 프로토콜을 지원합니다.
사용자 이전하기
Fitbit Web API에서 Google Health API로 이전하는 것은 단순한 기술 업데이트가 아닙니다. OAuth 라이브러리가 변경되므로 사용자는 새 통합에 다시 동의해야 합니다. 액세스 토큰과 새로고침 토큰을 Google Health API로 전송하여 작동하도록 할 수는 없습니다. 이전 중에 사용자 유지에 도움이 되도록 성공적인 이전을 위한 몇 가지 기술적, 전략적 제안사항을 소개합니다.
이중 라이브러리 전략
Fitbit Web API와 Google Health API는 서로 다른 OAuth2 라이브러리를 사용하므로 코드베이스에 두 라이브러리가 모두 존재하는 '브리징' 기간을 관리해야 합니다.
병렬 승인 관리
- 클라이언트 캡슐화: 'Health Service'의 추상화 레이어 또는 인터페이스를 만듭니다. 이렇게 하면 앱의 나머지 부분에서 특정 사용자에게 활성 상태인 라이브러리 (Fitbit OAuth 또는 Google OAuth)를 알지 못해도 데이터를 요청할 수 있습니다.
- 데이터베이스 스키마 업데이트: 사용자 테이블을 업데이트하여
oauth_type플래그를 포함합니다. 예를 들어 Fitbit OAuth에는fitbit을 사용하고 Google OAuth에는google을 사용합니다.- 신규 사용자: 기본적으로 Google Health API 및 Google OAuth
라이브러리를 사용합니다.
oauth_type을google로 설정합니다. - 기존 사용자: 다시 동의 절차를 완료할 때까지 Fitbit Web API를 계속 사용합니다.
oauth_type을fitbit으로 설정합니다.
- 신규 사용자: 기본적으로 Google Health API 및 Google OAuth
라이브러리를 사용합니다.
'단계별' 다시 동의 절차
강제로 로그아웃하는 대신 점진적 승인 접근 방식을 사용합니다.
- Fitbit 오픈소스 토큰 감지: Fitbit Web API 사용자가 앱을 열면 '서비스 업데이트' 알림을 트리거합니다.
- Google OAuth 절차 시작: 사용자가 '업데이트'를 클릭하면 Google OAuth2 라이브러리 절차를 시작합니다.
- 바꾸기 및 취소: Google OAuth 토큰이 수신되면 사용자 프로필에 저장하고
oauth_type을fitbit에서google로 업데이트하며 가능한 경우 프로그래매틱 방식으로 이전fitbit토큰을 취소하여 사용자의 보안 프로필을 정리합니다.
사용자 유지율 최대화
다시 동의는 이탈의 '위험 지대'입니다. 사용자가 앱을 포기하지 않도록 하려면 다음 UX 권장사항을 따르세요.
'가치 우선' 커뮤니케이션
'API를 업데이트했습니다'로 시작하지 마세요. 새로운 Google 지원 시스템의 이점을 먼저 설명하세요.
- 보안 강화: Google의 업계 최고 수준의 계정 보호 및 2단계 인증을 언급합니다.
- 안정성: 동기화 시간이 빨라지고 데이터 연결이 더 안정적입니다.
- 기능 게이팅: 새로운 기능과 데이터 유형에는 업데이트가 필요하다고 사용자에게 부드럽게 알립니다.
스마트 타이밍
- 중요한 작업 방해 금지: 사용자가 운동 중이거나 음식을 기록하는 동안에는 다시 동의 화면을 트리거하지 마세요.
- '푸시' 단계: 처음 30일 동안은 닫을 수 있는 배너를 사용합니다.
- '강제 종료' 단계: 공식 Fitbit Web API 지원 중단 기한과 일치하는 여러 주간의 경고 후에만 다시 동의를 필수로 만듭니다.
이전 절차 비교
이전 절차와 새 절차를 시각적으로 명확하게 구분하면 개발자가 로직이 분기되는 위치를 이해하는 데 도움이 됩니다.
| 기능 | Fitbit Web API (기존) | Google Health API (Google ID) |
| 인증 라이브러리 | 표준 오픈소스 | Google ID 서비스 (GIS) / Google 인증 |
| 사용자 계정 | Fitbit 기존 사용자 인증 정보 | Google 계정 |
| 토큰 유형 | Fitbit 전용 액세스 / 새로고침 | Google에서 발급한 액세스/새로고침 토큰 |
| 범위 관리 | 광범위한 권한 | 세분화된 / 점진적 권한 |
계정 이전의 미묘한 차이 처리
Fitbit 문서에 따르면 계정을 Google로 이전하는 사용자는 일반적으로 서드 파티 연결을 즉시 잃지 않지만 API 버전을 변경하는 것은 개발자 측의 요구사항입니다.
- 토큰 유효성 검사: 백그라운드 작업자를 사용하여 Fitbit 토큰이 "승인되지 않음" 오류로 실패하는지 확인합니다. 이는 사용자가 계정을 이전했지만 앱이 따라잡지 못했음을 나타낼 수 있습니다.
- 정상적인 실패: Fitbit OAuth 호출이 실패하면 새 Google OAuth 절차를 구체적으로 사용하는 맞춤 'Fitbit 다시 연결' 페이지로 사용자를 리디렉션합니다.