Google Health API로 걸음 수 환경 개발

Google Health API는 steps 간격 데이터 유형을 사용하여 사용자 걸음 수와 활동 데이터를 추적합니다. 걸음 수에는 일일 신체 활동의 기본 측정항목이 표시되므로 개발자는 이를 통해 운동 진행 상황을 추적하고, 에너지 소비량을 계산하고, 사용자에게 표시되는 일일 활동 요약을 빌드할 수 있습니다.

사용자에게 최고의 환경을 제공하기 위해 애플리케이션에서 걸음 수 측정항목을 읽고 구성하는 방법을 알아보세요.

지원되는 데이터 유형

API는 걸음 수 추적을 위해 다음 데이터 유형을 지원합니다.

표: Google Health API 걸음 수 데이터 유형
데이터 유형 사용 가능한
작업
범위
걸음 수
dataType: steps
filter parameter: steps
레코드 유형: 간격

호환 기기

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly

가이드라인

앱에 걸음 수 추적을 통합할 때는 다음 디자인 및 구현 가이드라인을 따르세요.

속도 및 페이스 계산

Google Health API는 표준 공식을 사용하여 속도와 페이스를 계산합니다.

  • 속도 = distance / time(hour)
  • 페이스 = time(seconds) / distance

요청에 지정된 Accept-Language 헤더에 따라 거리 단위가 결정됩니다.

일일 개요

여행, 시간대 변경 또는 일광 절약 시간 동안 일일 걸음 수를 정확하게 집계하려면 클라이언트 측 기간 계산을 실행하지 마세요. 대신 UTC 오프셋을 사용하여 신체 데이터 격차를 자동으로 조정하는 dailyRollUp 엔드포인트를 쿼리합니다. 롤업은 요청된 날짜의 누적된 총 걸음 수를 나타내는 countSum 필드가 포함된 StepsRollupValue를 반환합니다.

사용자 인터페이스 그리기 (조정)

걸음 수 데이터를 표시하는 사용자 인터페이스 요소를 빌드할 때는 reconcile 엔드포인트를 사용하세요. 스마트워치 및 휴대전화와 같은 여러 데이터 소스에서 동시에 걸음 수를 기록한 경우 reconcile 엔드포인트는 충돌을 해결하고 스트림을 병합하여 조정된 단일 데이터 스트림을 반환합니다.

일중 추적 및 히스토그램

차트 및 그래프와 같이 하루 종일의 상세한 사용자 활동을 표시하려면 다음 단계를 따르세요.

  • 시간별 걸음 수 히스토그램: windowSize 매개변수를 사용하여 기간 (예: 1시간의 경우 3600s)을 지정하여 rollUp 엔드포인트를 쿼리합니다.
  • 모든 걸음 수 기록: list 엔드포인트를 사용하여 가장 세분화된 원시 걸음 수 기록을 가져옵니다.

rollUp, dailyRollUp, reconcile 엔드포인트는 dataSourceFamily 매개변수를 허용하므로 특정 소스 그룹의 데이터를 필터링할 수 있습니다. 자세한 내용과 사용 예시는 엔드포인트 가이드의 데이터 소스 제품군별 필터링 및 집계 섹션을 참고하세요.

웹훅을 사용한 실시간 동기화

새 걸음 수 데이터가 가져오거나 동기화될 때 실시간으로 알림을 받으려면 steps 데이터 유형 컬렉션을 구독하세요. REST 엔드포인트를 폴링하는 대신 이러한 웹훅 알림에 따라 클라이언트 측 대시보드를 동적으로 업데이트합니다. 구독을 설정하는 방법은 웹훅 구독을 참고하세요.

True zeros 처리

Google Health API는 True zeros를 구현하여 앉아 있는 간격을 해결합니다. 사용자가 추적기를 착용하고 있지만 특정 기간 동안 걷지 않는 경우 API는 일반 데이터 소스 및 타임스탬프 메타데이터가 포함되어 있지만 count 속성은 생략된 해당 간격의 기록을 반환합니다.

이를 통해 다음을 구분할 수 있습니다.

  • 손목에 착용한 상태로 움직이지 않는 기간: 사용자가 기기를 착용하고 있지만 걷지 않습니다. 그러면 count 속성이 없는 기록이 반환됩니다 (걸음 수 0으로 해석됨).
  • 손목에서 벗어난 기간: 사용자가 기기를 착용하지 않습니다. 그러면 기록이 반환되지 않아 데이터 격차가 커집니다.

자세한 내용은 데이터 존재 및 True zeros 가이드를 참고하세요.