Beispiel für ein Python-Dienstkonto der Google Drive-API

Oct 28 2020

Ist es möglich, sich mit einem Google Service-Konto anstelle eines OAuth-Flows bei der Google Drive-API zu authentifizieren?

Die Python-Beispiele für Google Drive verwenden OAuth - Python-Schnellstart von Google Drive

Ich kann jedoch keine Beispiele für Dienstkonten finden.

Die meisten anderen von mir verwendeten Google-APIs (Übersetzen, Cloud Vision) verwenden jedoch das Dienstkonto. Daher möchte ich meinen Google Drive OAuth-Code aus Gründen der Konsistenz ablehnen.

Antworten

2 DaImTo Oct 28 2020 at 17:19

Das beste mir bekannte Python-Beispiel für ein Dienstkonto ist das für Google Analytics

Es sollte so etwas sein.

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

Sobald Sie den Laufwerksdienst haben, sollten Sie in der Lage sein, den Rest des Codes aus dem anderen Lernprogramm zu verwenden. Es ist nur die Auth-Methode, die anders ist.

Denken Sie daran, Anmeldeinformationen für das Dienstkonto und nicht für Oauth zu erstellen.