1단계 구글 스프레드 시트 준비하기
링크로 들어가서 구글 스프레드 시트에 구글 계정으로 로그인하여,
사본을 만들어 저장한다.
2단계 뉴트리셔닉스 API 웹사이트에서 API key 얻기
회원 가입 후, 인증 메일 확인할 것(verify)
APP ID와 API Key 확인하고
파이참에 저장하기
(환경 변수 저장도 가능)
3단계 어떤 API인지 확인하고, endpoint 저장하기
내가 한 운동을 입력했을 때,
그 운동이 얼마 만큼의 칼로리를 소비하는지 등을 알려주는 데이터 가져오기
endpoint 주소 얻기
https://trackapi.nutritionix.com/v2/natural/exercise
import requests
APIKEY= "API key입력하기"
APPID="아이디 입력하기"
exercise_endpoint = "https://trackapi.nutritionix.com/v2/natural/exercise"
headers={
"x-app-id":APPID,
"x-app-key":APIKEY,
"Content-Type": "application/json"
response = requests.post(url=exercise_endpoint, headers=headers, json=parameters)
4단계 Sheety 사이트에 로그인하고 구글 시트와 연결하기
제일 처음 구글시트에서 로그인했던 구글 계정과 똑같아야 한다.
프로젝트> 뉴 프로젝트> from google sheet
아까 만들었던 구글 시트 url을 넣는다.
API endpoint를 받는다.
https://api.sheety.co/25e3d9f314ce322eded8665f26131f5f/oliviaWorkouts/workouts
5단계 운동 칼로리 데이터를 구글시트에 기록 남기기
Date Time Exercise Duration Calories 열에 데이터 기록되도록 만든다.
1) 파라미터?
sheety API 사용할 때 파라미터 적을 때 유의사항
1. 파라미터는 소문자를 적는다.
2. 파라미터를 적을 때 sheety endpoint의 마지막에 오는 단어를 키 값으로 꼭!!! 넣어야 한다.
https://api.sheety.co/25e3d9f314ce322eded8665f26131f5f/oliviaWorkouts/workouts
위의 endpoint의 마지막 단어가 workouts인데, 여기서 s를 뺀 workout이 파라미터의 키값으로 시작해야 하는 것이다.
sheet_input = {
"workout":{
"date": date,
"time": time,
"exercise":exercise['user_input'].title(),
"duration": exercise['duration_min'],
"calories": exercise['nf_calories']
}
2) datetime 모듈로 date, time기록하기
import datetime
today = datetime.datetime.now()
date = today.strftime("%Y/%m/%d")
time = today.strftime("%H:%M:%S")
3) 인증키
인증키가 없으면 누구나 내 구글시트에 접근하여 읽고 쓸 수 있다.
나의 endpoint를 보호하려면 authentication인증을 활성화 해야한다.
방법은 두 가지이다.
첫 번째, Basic 인증
두 번째, Bearer 인증
basic인증과 똑같은 절차로 생성하면 되는데, 단지 다른 것은 username과 password 대신 암호화된 토큰을 이용한다는 것이다.
post_endpoint = "https://api.sheety.co/25e3d9caeded8665f26131f5f/oliviaWorkouts/workouts"
result=response.json()['exercises']
headers = {"Authorization": "Bearer 본인의 인증토큰을 입력하세요"}
for exercise in result:
sheet_input = {
"workout":{
"date": date,
"time": time,
"exercise":exercise['user_input'].title(),
"duration": exercise['duration_min'],
"calories": exercise['nf_calories']
}
}
print(sheet_input)
post_response = requests.post(url = post_endpoint, headers=headers, json =sheet_input)
print(post_response.text)
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[39-2 파이썬] pprint() 함수, keyword argument: depth, width, indent, stream, sort_dict (1) | 2022.10.03 |
---|---|
[39-1 파이썬] Swift Code(국제은행식별코드), IATA(국제항공운수협회), IATA code - API활용 최저가 항공권 찾기 프로젝트1 (1) | 2022.10.03 |
[37-6 파이썬 ] 7단계 requests.put(), requests.delete() (0) | 2022.09.30 |
[37-5 파이썬] 6단계 datetime 모듈, strftime() (0) | 2022.09.30 |
[37-4 파이썬] 4,5단계 그래프에 데이터 픽셀 추가하기 (0) | 2022.09.29 |