Esempio di account di servizio Python dell'API di Google Drive

Oct 28 2020

È possibile eseguire l'autenticazione con l'API di Google Drive utilizzando un account di servizio Google, anziché un flusso OAuth?

Gli esempi Python per Google Drive utilizzano OAuth - Google drive Python Quick start

Tuttavia non riesco a trovare alcun esempio di account di servizio.

La maggior parte del altro uso delle API di Google I (Traduci, Vision Cloud) fare uso account servizio però, quindi mi piacerebbe deprecare il mio codice di Google Drive OAuth per coerenza.

Risposte

2 DaImTo Oct 28 2020 at 17:19

Il miglior esempio di python di account di servizio che conosco è quello per Google Analytics

Dovrebbe essere qualcosa del genere.

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials


SCOPES = ['https://www.googleapis.com/auth/drive.readonly']
KEY_FILE_LOCATION = '<REPLACE_WITH_JSON_FILE>'
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'


def initialize_drive():
  """Initializes an service object.

  Returns:
    An authorized service object.
  """
  creds = ServiceAccountCredentials.from_json_keyfile_name(
      KEY_FILE_LOCATION, SCOPES)

  # Build the service object.
  service = build('drive', 'v3', credentials=creds)

  return service

Una volta ottenuto il servizio di azionamento, dovresti essere in grado di utilizzare il resto del codice che hai dall'altro tutorial. È solo il metodo di autenticazione che è diverso.

Ricorda solo di creare le credenziali dell'account di servizio e non le credenziali Oauth.