콘솔워크

[Python] 구글 드라이브 API 연결해보기 본문

프로그래밍/google api

[Python] 구글 드라이브 API 연결해보기

이휘재123 2022. 6. 14. 13:41
반응형

https://uipath.tistory.com/133

 

[Python] 구글 드라이브 API 초기설정

https://console.cloud.google.com/ Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 구글 클라우드 플랫폼에 로그인합니다. 새 프로젝트를 작성합니다. 프로젝트 이름을..

uipath.tistory.com

해당 포스팅을 사용하기 위해 초기설정이 필요합니다.

 

 

임의의 프로젝트를 생성하고 구글에 연결하기 위해 사용될 Google.py 파일을 작성합니다.

import pickle
import os
from google_auth_oauthlib.flow import Flow, InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload, MediaIoBaseDownload
from google.auth.transport.requests import Request
import datetime


def Create_Service(client_secret_file, api_name, api_version, *scopes):
    print(client_secret_file, api_name, api_version, scopes, sep='-')
    CLIENT_SECRET_FILE = client_secret_file
    API_SERVICE_NAME = api_name
    API_VERSION = api_version
    SCOPES = [scope for scope in scopes[0]]
    print(SCOPES)

    cred = None

    pickle_file = f'token_{API_SERVICE_NAME}_{API_VERSION}.pickle'
    # print(pickle_file)

    if os.path.exists(pickle_file):
        with open(pickle_file, 'rb') as token:
            cred = pickle.load(token)

    if not cred or not cred.valid:
        if cred and cred.expired and cred.refresh_token:
            cred.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE, SCOPES)
            cred = flow.run_local_server()

        with open(pickle_file, 'wb') as token:
            pickle.dump(cred, token)

    try:
        service = build(API_SERVICE_NAME, API_VERSION, credentials=cred)
        print(API_SERVICE_NAME, 'service created successfully')
        return service
    except Exception as e:
        print('Unable to connect.')
        print(e)
        return None

def convert_to_RFC_datetime(year=1900, month=1, day=1, hour=0, minute=0):
    dt = datetime.datetime(year, month, day, hour, minute, 0).isoformat() + 'Z'
    return dt

 

 

그 후 새로운 테스트용 파이썬파일을 작성해서 Google.py의 Create_Service를 import 하고 아래의 코드를 작성합니다.

 

from Google import Create_Service

CLIENT_SECRET_FILE = 'client_secret.json' # 초기설정 json파일 이름
API_NAME = 'drive'
API_VERSION = 'v3'
SCOPES = ['https://www.googleapis.com/auth/drive']

service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)

print(dir(service))

작성 후 코드를 처음 실행하면 계정선택 화면이 나옵니다.

 

초기설정의 OAuth 동의 화면에서 추가한 계정을 선택하고 다음으로 진행합니다.

 

 

 

초기설정이 정상적으로 되어있다면 해당 화면이 나옵니다. 드라이브에 최초로 연결했을경우에만 등장합니다.

 

터미널을 확인해보면 정상적으로 연결된 것을 확인 할 수 있습니다.

 

반응형