Beispiel für ein Python-Dienstkonto der Google Drive-API
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
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.