Jie Jenn - 01-gettingStarted

1. Google Drive API in Python | Getting Started

Part 1 Create Project, OAuth, and Venv

01

Review jie jenn gmail getting started and codeTops gmail getting started. The instructions are located here under GuidesQuickstartsPython
https://developers.google.com/drive/api/quickstart/python

Use tstudystuff gmail for practice

02

Create Project,

03

Enable Drive under Library

04

Follow the instructions from QuickstartsPython for setting up OAUTH and credentials, review jie jenn and code tops if confused seen in step 1 at top of this part

add the following scope found at https://developers.google.com/drive/api/guides/api-specific-auth

https://www.googleapis.com/auth/drive

Part 2

01

Put the two scripts in the same directory

import os.path

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

def create_service(client_secret,api_name,api_version,*scopes):
    CLIENT_SECRET = client_secret
    API_NAME = api_name
    API_VERSION = api_version
    SCOPES = [scope for scope in scopes[0]]

    creds = None
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json',SCOPES)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file('credentials.json',SCOPES)
            creds = flow.run_local_server(port=0)
        with open ('token.json','w') as token:
            token.write(creds.to_json())
    try:
        service = build(API_NAME,API_VERSION,credentials=creds)
        return service
    except HttpError as e:
        print('error', e)
                                
                                
from googleServiceCreate import create_service
CLIENT_SECRET = 'credentials.json'
API_NAME = 'drive'
API_VERSION = 'v3'
SCOPES = ['https://www.googleapis.com/auth/drive']

service = create_service(CLIENT_SECRET,API_NAME,API_VERSION,SCOPES)

                                

02

The dir() functions shows the attributes and methods of the service object, this works for all apis services

from googleServiceCreate import create_service
CLIENT_SECRET = 'credentials.json'
API_NAME = 'drive'
API_VERSION = 'v3'
SCOPES = ['https://www.googleapis.com/auth/drive']

service = create_service(CLIENT_SECRET,API_NAME,API_VERSION,SCOPES)

print(dir(service))
                                

03

If you go to the reference page https://developers.google.com/drive/api/reference/rest/v3 you can see they are listed here as well.