개발/기타
가민 (Garmin) 기술조사 와 api 사용
hoilog
2022. 11. 20. 15:59
Garmin Health SDK
Android 또는 iOS 앱에서 Garmin 웨어러블을 직접 통합할 수 있습니다.
- 건강 api
- 유저 정보, 활동 정보, 걸음수 등의 정보를 REST API로 제공해줍니다.
- 승인된 비즈니스 개발자로 등록 시 무료로 사용 가능
- 표준 sdk
- 웹서비스 통합 없이 Android, apple 제품용 모바일 앱에서 모든 건강 및 피트니스 활동 데이터에 직접 액세스 할 수 있습니다.
- 평가판 : 무료
- 상업용 : 라이선스 비용 또는 최소 장치 연동
- 컴패니언 sdk
- 실시간 센서 스트림 활용 가능
- 걸음 수와 같은 현재 활동 데이터에 즉시 액세스 하거나 심박수, 스트레스 점수, 가속도계 등의 실시간 정보를 활용할 수 있습니다.
- 평가판 : 무료
- 상업용 : 라이선스 비용 또는 최소 장치 연동
가민 API는 승인된 비즈니스 개발자 등록 또는 SDK 사용 요청을 해야 API 문서와 샘플 코드를 받을 수 있습니다.
리서치해 본 결과 NPM garmin-connect 패키지를 사용하면 개발자 등록을 하지 않더라도 일부 활동 데이터를 보내고 받을 수 있었습니다.
하지만 분당 리퀘스트 제한이 있는 것으로 보입니다. 1분에 약 50개를 초과하면 일정 시간이 지난 뒤 API 호출이 가능합니다.
아래는 garmin-connect 패키지를 이용해 API 결과를 가져온 정보입니다.
가민 웨어러블 기기가 없기 때문에 garmin connect 앱을 이용해 수동으로 데이터를 넣어 테스트를 진행했습니다.
그 때문에 비어있는 값이 많습니다.
API 테스트를 위한 NPM Garmin-connect 설치
npm install garmin-connect
또는
yarn add garmin-connect
Garmin-connect 사용 예
가민 계정을 이용해 connection을.
const { GarminConnect } = require('garmin-connect');
const GCClient = new GarminConnect();
await GCClient.login('my.email@example.com', 'MySecretPassword');
const userInfo = await GCClient.getUserInfo();
테스트한 API
- 유저 정보
- 소셜 사용자 정보
- 활동 정보
- 걸음수
- 심박수
- 수면 요약정보
- 수면 세부 정보
- 체중 설정
- 운동 추가
→ 유저 정보
const userInfo = await GCClient.getUserInfo();
console.log(userInfo);
→ 활동정보
const activities = await GCClient.getActivities();
const id = activities[0].activityId;
const activitDetail = await GCClient.getActivity({ activityId: id });
console.log(activitDetail);
→ 특정 날짜의 걸음수
const steps = await GCClient.getSteps(new Date('2022-11-20'));
console.log(steps);
→ 심박수
const heartRate = await GCClient.getHeartRate(new Date('2022-11-20'));
console.log(heartRate);
→ 수면요약정보
const sleep = await GCClient.getSleep(new Date('2022-11-20'));
console.log(sleep);
→ 수면세부정보
const detailedSleep = await GCClient.getSleepData(new Date('2020-03-24'));
console.log(detailedSleep);
api실행 결과 값은 첨부하지 않았습니다.
직접 간단하게 테스트해보시고 결괏값을 확인해보시면 좋을 것 같습니다.
참고사이트