본문 바로가기
데이터 수집 및 파이프라인 구축/데이터수집 (Extract)

구글 api pytyhon 클라이언트 사용방법 Google Cloud Secret Manager

by goemgoem-i 2025. 1. 2.
반응형

Google-api-pyhton-clients

Google Calendar, Drive, Gmail 등과 같은 Google 서비스의 API를 활용할 수 있음

 

 

 

1. Google Cloud Console에서 OAuth 2.0 클라이언트 생성

 

1-1.  API 키 생성

https://toonovel.tistory.com/entry/youtube-api-%EB%B6%84%EC%84%9D-%EB%B0%8F-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%83%9D%EC%84%B1%EA%B3%BC-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%9D%B8%EC%A6%9D%EC%A0%95%EB%B3%B4-%EC%83%9D%EC%84%B1

 

youtube api 분석 및 프로젝트생성과 사용자 인증정보 생성

youtube api를 분석해보겠다 게임보다는 익숙한 환경이라 수월했으면,,    1. 구글 클라우드로 들어가서 우선 프로젝트를 생성해야한다 https://code.google.com/apis/console/?hl=ko     2. 프로젝트 생성

toonovel.tistory.com

해당 블로그 참고해서 API키 발급 받

 

 

1-2. OAuth 동의 화면 설정

  • API 및 서비스 > OAuth 동의 화면으로 이동
  • 앱 이름, 이메일 주소 등 필수 정보를 입력하고 저장
  • 외부 사용자용으로 설정(내부 사용은 G Suite 계정이 필요함)

 

1-3. OAuth 클라이언트 ID 생성

  • API 및 서비스 > 사용자 인증 정보 > 사용자 인증 정보 만들기 > OAuth 클라이언트 ID 클릭
  • 애플리케이션 유형 선택:
    • 데스크톱 애플리케이션 (로컬 Python 코드 실행 시 적합)
  • 클라이언트 이름 입력 후 생성
  • 클라이언트 ID와 비밀번호(JSON 파일) 다운로드합니다. 이 파일은 client_secret.json이라는 이름으로 저장

 

2. Python 환경 준비

2-1. 파이썬 설치

2-2. 필요한 패키지 설치 

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client

 

 

3. Python 코드 작성

3-1. Google Drive 파일 목록 가져오기

  1. client_secret.json 파일을 프로젝트 폴더에 복사
    다운로드한 JSON 파일을 Python 코드가 있는 디렉토리에 저장.

3-2. 예제: Google Drive 파일 목록 가져오기

from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build

# 사용할 권한 범위 설정 (Google Drive 읽기 전용 예제)
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']

# OAuth 인증 및 토큰 생성
def authenticate():
    flow = InstalledAppFlow.from_client_secrets_file(
        'client_secret.json', SCOPES)
    creds = flow.run_local_server(port=0)
    return creds

def main():
    # 인증 실행
    creds = authenticate()

    # Google Drive API 클라이언트 생성
    service = build('drive', 'v3', credentials=creds)

    # Google Drive에서 파일 목록 가져오기
    results = service.files().list(pageSize=10).execute()
    items = results.get('files', [])

    if not items:
        print('No files found.')
    else:
        print('Files:')
        for item in items:
            print(f"{item['name']} ({item['id']})")

if __name__ == '__main__':
    main()

 

 

 

 

4. 게임api 키 보관하기 

4-1. env 파일에 보관하기

4-2 Google Cloud Secret Manager에 API 키 저장

https://cloud.google.com/security/products/secret-manager?hl=ko

 

https://cloud.google.com/security/products/secret-manager?hl=ko

 

cloud.google.com

  • Google Cloud Console에서 프로젝트를 선택
  • Secret Manager > 비밀 만들기를 선택하여 RAWG_API_KEY를 비밀로 저장

 

 

4-3. Python 코드에서 Secret Manager 사용

pip install google-cloud-secret-manager

 

 

4-4. Secret Manager에서 키를 불러오는 코드 작성

from google.cloud import secretmanager
import requests

def get_secret(secret_name):
    client = secretmanager.SecretManagerServiceClient()
    project_id = "your-google-cloud-project-id"
    name = f"projects/{project_id}/secrets/{secret_name}/versions/latest"
    response = client.access_secret_version(request={"name": name})
    return response.payload.data.decode("UTF-8")

# RAWG API 키 가져오기
RAWG_API_KEY = get_secret("RAWG_API_KEY")

# API 요청
url = "https://api.rawg.io/api/games"
params = {
    "key": RAWG_API_KEY,
    "search": "Halo",
}
response = requests.get(url, params=params)

if response.status_code == 200:
    print(response.json())
else:
    print(f"Error: {response.status_code}")

 

 

 

결론

 

구글과 관련된 api키를 발급 받는 경우 구글클라이언트api를 사용해보자

그외의 api키는 env파일을 만들어서 api키를 보호하자

반응형