첫번째로 구글 스프레드시트에 아래와 같은 예시를 작성한다.

https://blog.kakaocdn.net/dn/OdI3Z/btrFciATbGX/J9CV29kx6YRs52DKk7Fwmk/img.png

두번째로

뉴트리셔닉스에 접속하여 id와 key를 얻는다

https://developer.nutritionix.com/admin/applications/1409622572077

https://developer.nutritionix.com/login Welcome Login with your Github Account developer.nutritionix.com

뉴트리셔닉스 API문서를 살펴보고 간단한 운동을 프롬프트에 입력 시 운동 통계를 출력하는 방법을 알아보았다.

https://docs.google.com/document/d/1_q-K-ObMTZvO0qUEAxROrN3bwMujwAN25sLHwJzliK0/edit

Nutritionix API v2 - Documentation [PUBLIC] Nutritionix API v2 Documentation [PUBLIC] Table of Contents Summary Live API Demos Important Resources Obtaining API Keys & Authenticating Food Lookup Endpoints /v2/natural/nutrients /v2/search/instant /v2/search/item Exercise Endpoints /v2/natural/exercis docs.google.com

import requests

nutrition_id = ""
nutrition_key = ""

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

headers = {
    "x-app-id" : nutrition_id,
    "x-app-key" : nutrition_key
}

body = {
    "query" : input("어떤 운동을 하셨나요>"),
    "gender" : "male",
    "weight_kg" : "80",
    "height_cm" : "178",
    "age" : 29
}

response = requests.post(url=exercise_endpoint, json=body, headers=headers)
print(response.json())

# 결과
{'exercises': [{'tag_id': 317, 'user_input': 'ran', 'duration_min': 30.02, 'met': 9.8, 'nf_calories': 392.26, 'photo': {'highres': '<https://d2xdmhkmkbyw75.cloudfront.net/exercise/317_highres.jpg>', 'thumb': '<https://d2xdmhkmkbyw75.cloudfront.net/exercise/317_thumb.jpg>', 'is_user_uploaded': False}, 'compendium_code': 12050, 'name': 'running', 'description': None, 'benefits': None}]}

sheety를 이용하여 구글 시트에 데이터 저장하기

https://dashboard.sheety.co/new

Sheety   dashboard.sheety.co

today = datetime.now().strftime("%d/%m/%Y")
now_time = datetime.now().strftime("%X")

sheety_endpoint = "<https://api.sheety.co/84426ee090ea11c82b6b831ec2757947/exercise/workouts>"

sheety_body = {
    "workout" : {
        "date" : today,
        "time" : now_time,
        "exercise" : exercise_data["user_input"],
        "duration" : exercise_data["duration_min"],
        "calories" : exercise_data["nf_calories"]
    }
}

sheety_response = requests.post(url=sheety_endpoint, json=sheety_body)
print(sheety_response.text)

보안을 강화하기

sheety에서 Basic타입을 선택 후  username과 password를 설정한다.

https://blog.kakaocdn.net/dn/cu66Jv/btrFfZABWy3/f7qoiCfHOcqsvkoWYy8rBK/img.png

아래와같이 auth 파라미터에 전달해준다.

sheety_username = "id"
sheety_password = "pw"

sheety_response = requests.post(url=sheety_endpoint, json=sheety_body, auth=(sheety_username,sheety_password))
print(sheety_response.text)

구글 스프레드시트에 자동입력 된 것을 확인할 수 있다.