Google Drive API access via Service Account - Python

Ajeeb.K.P - Apr 2 '20 - - Dev Community

Intro

I was looking for Google Drive API access with Service Account authentication (ie. server to server communication without frequent user interaction). I always, ended up here https://developers.google.com/drive/api/v3/quickstart/python via search engines. So, I couldn't find suitable doc for Service Account access for Google Drive API.

How to access

I found a way to mix it with other tutorials.

Sharing with email

Service account json (credential.json) has an client_email. We should share the resources with this account, then only the Service Account access is possible.

The mix

I searched for "Google Service Account Getting started python".

# https://developers.google.com/drive/api/v3/quickstart/python
from __future__ import print_function
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

# https://developers.google.com/analytics/devguides/config/mgmt/v3/quickstart/service-py
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
credentials = ServiceAccountCredentials.from_json_keyfile_name(
            key_file_location, scopes=scopes)

# https://developers.google.com/drive/api/v3/quickstart/python
service = build('drive', 'v3', credentials=credentials)

# Call the Drive v3 API
results = service.files().list(
    pageSize=10, fields="nextPageToken, files(id, name)").execute()
items = results.get('files', [])

if not items:
    print('No files found.')
else:
    print('Files:')
    for item in items:
        print(u'{0} ({1})'.format(item['name'], item['id']))
Enter fullscreen mode Exit fullscreen mode

Conclusion

I was able to figure out Google Drive API. I would like to thank Google for consistent terminology.

Remarks

This article is not bullet proof. Basically, get credential by following this tutorial https://developers.google.com/analytics/devguides/config/mgmt/v3/quickstart/service-py. Now use that credential to https://developers.google.com/drive/api/v3/quickstart/python.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player