Exercise Tracking with Python and Google Sheets

자연어 쿼리로 운동 통계 얻기

  • 운동 통계를 출력하는 방법
  • API key와 APP ID 하드코딩
import requests

GENDER = "female"
WEIGHT_KG = 50
HEIGHT_CM = 167
AGE = 18

APP_ID = "e5ea6ac6"
API_KEY = "0a21f7ee3806e916dbfc5d546ceaea6a"

exercise_endpoint = "https://trackapi.nutritionix.com/v2/natural/exercise"

exercise_text = input("Tell me which exercises you did: ")

headers = {
    "x-app-id": APP_ID,
    "x-app-key": API_KEY,
}

parameters = {
    "query": exercise_text,
    "gender": GENDER,
    "weight_kg": WEIGHT_KG,
    "height_cm": HEIGHT_CM,
    "age": AGE
}

response = requests.post(exercise_endpoint, json=parameters, headers=headers)
result = response.json()
print(result)

1



Sheety로 구글시트 준비하기

  • 구글계정으로 Sheety에 로그인, 프로젝트 생성

2


  • API엔드포인트에 GET과 POST에 체크

3



구글시트에 데이터 저장하기

  • Sheety API를 사용한 코드를 작성해서 뉴트리셔닉스API로 얻은 운동 데이터를 구글 시트의 신규행으로 추가하기
  • 날짜 및 시간 열에는 파이썬 datetime모듈에서 가져온 현재 날짜 및 시간을 입력
  • 파이썬의 .title()메소드를 사용해서 텍스트 제목으로 만들기
  • strftime()메소드를 사용해서 datetime 객체의 형식으로 지정할 수 있음

4


5



Sheety API 인증하기

  • Sheety엔드포인트를 보호하기 위해 Basic인증이나 Bearer토큰 추가

  • Bearer 인증이란 : 보안 토큰을 포함하는 HTTP 인증 방식.
    ‘Bearer 인증’이라는 이름에서부터 ‘이 토큰을 나르는 사람에게 접근 권한을 부여한다’는 의미이다. 보안 토큰, 혹은 ‘bearer 토큰’은 암호화된 문자열이며 다음과 같은 예시를 들 수 있음 “AAAAAAAAAAAAAAAAAAAAAMLheAAAAAAA0%2BuSeid%2BULvsea4JtiGRiSDSJSI%3DEUifiRBkKG5E2XzMDjRfl76ZC9Ub0wnz4XsNiRVBChTYbJcE3F” 보안 토큰을 가진 사람은 누구나 스프레드시트에 접근할 수 있도록 허락된다는 개념이다. 브라우저나 모바일 앱과 같은 클라이언트가 Sheety 서버로 요청을 보낼 때, 인증 헤더에 이 보안 토큰을 넣어 보낸다.


  • Basic인증 사용함

6


7