Python에서 Auth를 사용해 Google Spreadsheets 연동하기


  • Python에서 Google Spreadsheets 연동하는 방법을 작성한 글입니다
  • 구유림님의 gspread를 이용하여 Python에서 구글 시트 연동하기 에 gspread를 사용하는 방법에 대해 자세히 작성되어 있습니다 :)
    • 이번 글은 Service Account Key 없이 Web Auth를 이용해 구글 시트를 연동하는 방법을 다룹니다

Google Sheets

  • 사용할 라이브러리
    • gspread
    • pydata_google_auth
  • pydata_google_auth
  • 원리
    • 원리는 생각보다 간단
    • 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를 저장하기 때문
  • 만약 다른 계정으로 로그인하고 싶으면 $HOME/.config/pydata/pydata_google_credentials.json(Mac) 또는 $APPDATA/.config/pydata/pydata_google_credentials.json(윈도우)를 삭제

Reference


카일스쿨 유튜브 채널을 만들었습니다. 데이터 사이언스, 성장, 리더십, BigQuery 등을 이야기할 예정이니, 관심 있으시면 구독 부탁드립니다 :)

PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다

이 글이 도움이 되셨거나 다양한 의견이 있다면 댓글 부탁드립니다 :)

Buy me a coffeeBuy me a coffee





© 2017. by Seongyun Byeon

Powered by zzsza