Google Drive API allows you to create apps that leverage Google Drive cloud storage. You can develop applications that integrate with Google Drive, and create robust functionality in your application using Google Drive API.



Some examples what you can do with Google Drive API?

  1. Download files from Google Drive and Upload files to Google Drive.
  2. Search for files and folders stored in Google Drive. Create complex search queries that return any of the file metadata fields in the Files resource.
  3. Let users share files, folders and drives to collaborate on content.
  4. Create third-party shortcuts that are external links to data stored outside of Drive, in a different data store or cloud storage system.
  5. Create a dedicated Drive folder to store your application’s data so that the app cannot access all the user’s content stored in Google Drive. See Store application-specific data
  6. Manage multiple accounts simultaneously.
  7. Search files across multiple accounts simultaneously.

Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn


Quota and Scopes

You can make up to 1,000,000,000 (1 billion) Drive API calls per day. If you are exceeding the limit, you can contact Google support to increase the limit.

Authentication

Every request your application sends to the Drive API must include an authorization token. The token also identifies your application to Google.

Your application must use OAuth 2.0 to authorize requests. No other authorization protocols are supported.

Step 1. Enable Google Drive API service

  1. Log in to your Google Cloud Platform,
  2. Select your project
  3. Enable Google Drive API service

If this is your first time working with Google API service, to learn how to create your first Google Project.

Step 2. Install Python Library

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

Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn




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


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