feat(sheets): 사용자 OAuth 리프레시 토큰 인증 지원
조직 정책(iam.disableServiceAccountKeyCreation)으로 서비스 계정 키를 만들 수 없는 환경 대응. 서비스 계정이 설정돼 있으면 그쪽을 먼저 쓰고, 없으면 GOOGLE_SHEETS_OAUTH_REFRESH_TOKEN + client id/secret 으로 인증한다. (client id/secret 미지정 시 로그인용 GOOGLE_CLIENT_ID/SECRET 재사용) scripts/google_sheets_authorize.py: 데스크톱 앱 OAuth 클라이언트로 1회 동의해 refresh token 을 발급받는 스크립트. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,16 @@ CUSTOMER_ORDER_LIST_URL=/orderlist/
|
||||
# - 대상 문서는 반드시 "Google 스프레드시트" 형식(업로드한 .xlsx 는 파일>Google 스프레드시트로 저장)
|
||||
# - 서비스 계정 이메일(client_email)에 해당 문서를 편집자로 공유해야 한다
|
||||
# CUPANG_SHEET_ID=1J74op7lBZOgE27p4R28I3RWsv0EtXdii
|
||||
#
|
||||
# [방식 A] 사용자 OAuth 리프레시 토큰 — 조직 정책으로 서비스 계정 키를 못 만들 때
|
||||
# 토큰 발급: python scripts/google_sheets_authorize.py --client-id .. --client-secret ..
|
||||
# (Cloud Console 에서 "데스크톱 앱" 유형 OAuth 클라이언트 ID 발급 후 사용)
|
||||
# client id/secret 을 생략하면 로그인용 GOOGLE_CLIENT_ID/SECRET 을 쓴다.
|
||||
# GOOGLE_SHEETS_OAUTH_CLIENT_ID=xxx.apps.googleusercontent.com
|
||||
# GOOGLE_SHEETS_OAUTH_CLIENT_SECRET=replace-me
|
||||
# GOOGLE_SHEETS_OAUTH_REFRESH_TOKEN=replace-me
|
||||
#
|
||||
# [방식 B] 서비스 계정 JSON (문서를 client_email 에 편집자로 공유해야 함)
|
||||
# GOOGLE_SHEETS_CREDENTIALS=/opt/www/main/secrets/google-sheets-sa.json
|
||||
# 또는 파일 대신 JSON 본문을 통째로 (한 줄):
|
||||
# GOOGLE_SHEETS_CREDENTIALS_JSON={"type":"service_account", ...}
|
||||
|
||||
Reference in New Issue
Block a user