구글에서 제공하는 수많은 API를 사용하기 위해서는 사용자 인증 정보가 필요하다. 구글 피트니스에 저장되는 정보는 개인 정보이기 때문에 OAuth 클라이언트 ID 인증 방식을 사용해야 한다. 그리고 구글 클라우드 플랫폼의 API(클라우드 스토리지, 클라우드 데이터플로우)를 사용하기 위해서는 서비스 어카운트를 이용한 인증 방식을 사용해야 한다.

API 호출을 위한 인증 방식 소개

OAuth 인증

프로그램에서 사용자 데이터에 엑세스할 수 있도록 사용자 동의를 요청하는 방식의 인증 방식이다. 예를 들어 구글 피트니스 앱을 통해 수집된 개인 정보는 각 개인별 계정에 데이터가 저장된다. 따라서 구글 피트니스 API를 통해 이렇게 저장된 각 개인 계정의 정보에 접근하기 위해서 해당 인증 방식을 이용해야 한다.

해당 인증 방식으로 구글 피트니스 API를 호출하게 되면 사용자에게 로그인 과정과 프로그램이 접근하는 데이터의 범위와 사용 여부 동의를 요청한다. 이과정을 거쳐야 프로그램이 API를 사용할 수 있게 된다. 이 방식을 사용하기 위해서는 GCP 프로젝트, 클라이언트 ID, 클라이언트 시크릿 정보등이 들어 있는 client_secret.json 파일을 다운로드 받아서 프로그램에 포함 시켜야 한다.

서비스 계정 인증

서비스 계정을 사용하여 인증을 사용하는 방식이다. 우리가 만들 프로그램은 구글피트니스와 레스큐타임의 데이터를 가져와서 구글 클라우드 스토리지에 파일 형태로 저장해야 한디. 이때 서비스 계정 키 인증 정보를 이용해야 구글 클라우드 스토리지 접근 권한을 얻을 수 있게 된다. 이렇게 내가만든 프로그램과 구글측 서버간의 통신사이의 인증을 할때는 개인 사용자 계정을 이용하는 대신 서비스 계정 키를 만들때 생성되는 서비스 계정을 사용해야 한다.

OAuth 클라이언트 키 만들기

구글 피트니스에 저장되는 정보는 개인 정보이기 때문에 Fitness API를 호출하기 위해서는 OAuth 인증을 거쳐야 한다. 이를 위해서는 미리 OAuth 클라이언트 ID를 만들어야 한다.

  1. 구글 클라우드 플랫폼 메뉴에서 API 및 서비스 > 사용자 인증 정보 메뉴로 이동한다. 그리고 화면 우측의 “사용자 인증 정보 만들기” 버튼을 클릭한 후 OAuth 클라이언트 ID 메뉴를 클릭한다.

Untitled

  1. 어플리케이션 유형을 기타로 선택하고 클라이언트 ID 식별을 위한 이름을 입력한다.

Untitled

  1. 생성 버튼을 클릭하면 OAuth 클라이언트 ID 생성이 완료된다.

Untitled

  1. 생성된 ID 정보를 프로그램에서 사용하기 위해서는 인증 정보가 담기 json 파일을 다운로드 받아야 한다. 클라이언트 ID 리스트에서 우측 다운로드 버튼을 눌러서 json 파일을 다운로드 받는다. 이 파일은 앞으로 설명할 구글피트니스 데이터를 가져오는 프로그램 구동시에 인증을 위해 사용할 것이다.

Untitled

서비스 어카운트 키 생성

클라우드 스토리지, 클라우드 데이터플로우 API를 사용하려면 구글 클라우드 플랫폼에 접근이 가능한 서비스 어카운트를 생성 해야 한다.

  1. 구글 클라우드 플랫폼 메뉴에서 IAM 및 관리자 > 서비스 계정 메뉴로 이동한다. 그리고 화면 우측의 “서비스 계정 만들기” 버튼을 클릭한다.