Python에서 Auth를 사용해 Google Spreadsheets 연동하기
in Development on Python
- Python에서 Google Spreadsheets 연동하는 방법을 작성한 글입니다
- 구유림님의 gspread를 이용하여 Python에서 구글 시트 연동하기 에 gspread를 사용하는 방법에 대해 자세히 작성되어 있습니다 :)
- 이번 글은 Service Account Key 없이 Web Auth를 이용해 구글 시트를 연동하는 방법을 다룹니다
Google Sheets
- 사용할 라이브러리
- gspread
- pydata_google_auth
- pydata_google_auth
- Github
- 이 라이브러리는 Google API 인증을 위한 헬퍼 패키지
- BigQuery를 사용할 경우에도 사용함 : [pandas-gbq에서 인증(Authentication) 설정하기] 참고
- 원리
- 원리는 생각보다 간단
- pydata_google_auth를 통해 credentials를 생성
- 거기에 존재하는 access_token을 통해 gspread에 인증
- 단, pydata의 access_token은
token
에 저장되고 gspread는access_token
이 필요함 - 이 부분을 덮어쓰는 코드 추가
코드
import pydata_google_auth
import gspread
SCOPES = [
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/spreadsheets'
]
credentials = pydata_google_auth.get_user_credentials(SCOPES, auth_local_webserver=True)
credentials.access_token = credentials.token
gc = gspread.authorize(credentials)
gc.list_spreadsheet_files()
참고
- 한번만 인증하면 그 다음은 웹이 뜨지 않아서 왜 그런가? 하고 소스를 뜯어봄
- (Mac 기준)
~/.config/pydata/pydata_google_credentials.json
에 전에 사용한 credentials를 저장하기 때문- 공식 문서의 credentials_cache를 참고하면 저장함
- 만약 다른 계정으로 로그인하고 싶으면
$HOME/.config/pydata/pydata_google_credentials.json
(Mac) 또는$APPDATA/.config/pydata/pydata_google_credentials.json
(윈도우)를 삭제
Reference
카일스쿨 유튜브 채널을 만들었습니다. 데이터 분석, 커리어에 대한 내용을 공유드릴 예정입니다.
PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다
이 글이 도움이 되셨거나 의견이 있으시면 댓글 남겨주셔요.