반응형
Google-api-pyhton-clients
Google Calendar, Drive, Gmail 등과 같은 Google 서비스의 API를 활용할 수 있음
1. Google Cloud Console에서 OAuth 2.0 클라이언트 생성
1-1. API 키 생성
해당 블로그 참고해서 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 파일 목록 가져오기
- 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
- 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키를 보호하자
반응형
'데이터 수집 및 파이프라인 구축 > 데이터수집 (Extract)' 카테고리의 다른 글
하드코딩과 소프트코딩 차이점 및 개념 (0) | 2025.01.01 |
---|---|
blizzard api 수집해보기 (0) | 2024.12.23 |
RAWG API 탐색하기 (0) | 2024.12.21 |
youtube api 분석 및 프로젝트생성과 사용자 인증정보 생성 (0) | 2024.12.19 |
페이지네이션의 오류로 인해서 알아보는 network 사용법 (2) | 2024.11.04 |