Die ersten 100 Dateien anzeigen & Ordner in Google Drive

1. Google Workspace-APIs verwenden

In diesem Codelab erfahren Sie, wie Sie HTTP-basierte RESTful APIs von Google Workspace (ehemals G Suite) verwenden. Das Beispiel wird aus Gründen der Kürze und Verfügbarkeit in Python erstellt. Sie können aber auch Ihre bevorzugte Entwicklungssprache verwenden. Sie lernen grundlegende Themen kennen, z. B. wie Sie mit der Entwicklerkonsole Projekte erstellen und verwalten, Autorisierungsanmeldedaten abrufen und die API-Clientbibliotheken installieren. Nachdem Sie die Formalitäten erledigt haben, schreiben Sie eine App, mit der die ersten 100 Dateien und Ordner in Ihrer Google Drive-Ablage über die API angezeigt werden.

Lerninhalte

  • Projekt mit der Google/Cloud Developers Console erstellen
  • OAuth2-Anmeldedaten für Anwendungen in Ihrer App abrufen und verwenden
  • Google APIs-Clientbibliotheken verwenden
  • Anwendungen mit Google- und Google Workspace-APIs entwickeln
  • Datei- und Ordnerinformationen mit der Google Drive API abrufen

Voraussetzungen

  • Zugriff auf das Internet und einen Webbrowser
  • Ein Google-Konto (für Google Workspace-Konten ist möglicherweise die Genehmigung durch den Administrator erforderlich)
  • Vertrautheit mit POSIX-kompatiblen Systemen wie Linux und Mac OS X
  • Sie können Quelldateien mit einem Code-Editor oder Shell-Befehlen erstellen.
  • Grundkenntnisse in Python (2 oder 3), Sie können aber jede unterstützte Sprache verwenden
  • Einige Dateien und/oder Ordner in Ihrem Google Drive

2. Umfrage

Wie werden Sie dieses Codelab verwenden?

Nur lesen Lesen und Übungen durchführen

Wie würden Sie Ihre Erfahrungen mit den Google Workspace-Entwicklertools und ‑APIs bewerten?

Anfänger Mittelstufe Fortgeschritten

3. Übersicht

In diesem Codelab erfahren Sie, wie Sie Folgendes tun:

  1. Google APIs-Clientbibliothek für Python herunterladen
  2. Erstellen Sie ein neues Projekt in der Google/Cloud Developers Console.
  3. Erforderliche Anmeldedaten für Ihre App abrufen
  4. Mit diesen Anmeldedaten auf die Google Drive API zugreifen

Wenn Sie Python nicht verwenden möchten, können Sie das Codelab auch in Ihrem bevorzugten Entwicklungstool implementieren. Die Clientbibliotheken der unterstützten Sprachen sind hier verfügbar. Die Python-Beispiele können Sie einfach als ausführbaren Pseudocode betrachten.

4. Python-Umgebung bestätigen

Für dieses Codelab müssen Sie Python verwenden. Die Google APIs-Clientbibliotheken unterstützen jedoch viele Sprachen. Sie können also auch ein entsprechendes Projekt in Ihrem bevorzugten Entwicklungstool erstellen und Python einfach als Pseudocode verwenden. Dieses Codelab unterstützt Python 2 und 3. Wir empfehlen jedoch, so schnell wie möglich auf Version 3.x umzusteigen.

Die Cloud Shell ist eine praktische Funktion, die Nutzern direkt in der Cloud Console zur Verfügung steht. Sie erfordert keine lokale Entwicklungsumgebung. Diese Anleitung kann also vollständig in der Cloud mit einem Webbrowser durchgearbeitet werden. Cloud Shell ist besonders nützlich, wenn Sie mit GCP-Produkten und ‑APIs entwickeln oder planen, dies zu tun. Speziell für dieses Codelab sind in Cloud Shell bereits beide Versionen von Python vorinstalliert.

In Cloud Shell ist auch IPython installiert. Das ist ein interaktiver Python-Interpreter auf höherer Ebene, den wir besonders für Data Scientists und Machine Learning-Experten empfehlen. Wenn das der Fall ist, ist IPython der Standardinterpreter für Jupyter-Notebooks sowie für Colab, von Google Research gehostete Jupyter-Notebooks.

IPython bevorzugt zuerst einen Python 3-Interpreter, greift aber auf Python 2 zurück, wenn 3.x nicht verfügbar ist. Auf IPython kann über Cloud Shell zugegriffen werden. Es kann aber auch in einer lokalen Entwicklungsumgebung installiert werden. Beenden Sie die Shell mit ^D (Strg+D) und bestätigen Sie das Beenden. Die Beispielausgabe beim Starten von ipython sieht so aus:

$ ipython
Python 3.7.3 (default, Mar 4 2020, 23:11:43)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:

Wenn Sie IPython nicht bevorzugen, können Sie auch einen standardmäßigen interaktiven Python-Interpreter verwenden (entweder Cloud Shell oder Ihre lokale Entwicklungsumgebung). Beenden Sie ihn ebenfalls mit ^D:

$ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
$ python3
Python 3.7.3 (default, Mar 10 2020, 02:33:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Im Codelab wird außerdem davon ausgegangen, dass Sie das Installationsprogramm pip (Python-Paketmanager und Abhängigkeitsresolver) haben. Es ist in den Versionen 2.7.9+ oder 3.4+ enthalten. Wenn Sie eine ältere Python-Version haben, finden Sie in dieser Anleitung Installationsanweisungen. Je nach Ihren Berechtigungen benötigen Sie möglicherweise sudo- oder Superuser-Zugriff. Das ist aber in der Regel nicht der Fall. Sie können auch explizit pip2 oder pip3 verwenden, um pip für bestimmte Python-Versionen auszuführen.

Im restlichen Codelab wird davon ausgegangen, dass Sie Python 3 verwenden. Für Python 2 werden spezifische Anleitungen bereitgestellt, wenn sie sich erheblich von 3.x unterscheiden.

*Virtuelle Umgebungen erstellen und verwenden

Dieser Abschnitt ist optional und nur für Nutzer erforderlich, die für dieses Codelab eine virtuelle Umgebung verwenden müssen (siehe Warnung in der Seitenleiste oben). Wenn Sie nur Python 3 auf Ihrem Computer haben, können Sie einfach diesen Befehl ausführen, um eine virtuelle Umgebung mit dem Namen my_env zu erstellen (Sie können auch einen anderen Namen auswählen):

virtualenv my_env

Wenn Sie jedoch sowohl Python 2 als auch Python 3 auf Ihrem Computer haben, empfehlen wir, eine virtuelle Python 3-Umgebung zu installieren. Das geht mit -p flag so:

virtualenv -p python3 my_env

Geben Sie die neu erstellte virtuelle Umgebung ein, indem Sie sie so „aktivieren“:

source my_env/bin/activate

Prüfen Sie, ob Sie sich in der Umgebung befinden. Der Name der Umgebung sollte jetzt vor der Shell-Eingabeaufforderung stehen, z. B.:

(my_env) $ 

Jetzt sollten Sie alle erforderlichen Pakete pip install können, Code in dieser Umgebung ausführen usw. Ein weiterer Vorteil ist, dass Sie diese gesamte Umgebung löschen können, ohne dass sich dies auf den Rest Ihres Systems auswirkt, wenn Sie sie vollständig durcheinanderbringen oder Ihre Python-Installation beschädigt wird.

5. Google APIs-Clientbibliothek für Python installieren

Für dieses Codelab ist die Google APIs-Clientbibliothek für Python erforderlich. Die Installation ist einfach oder Sie müssen gar nichts tun.

Wir haben Ihnen zuvor empfohlen, Cloud Shell zu verwenden. Sie können das gesamte Tutorial über einen Webbrowser in der Cloud durcharbeiten. Ein weiterer Grund für die Verwendung von Cloud Shell ist, dass viele gängige Entwicklungstools und erforderliche Bibliotheken bereits vorinstalliert sind.

*Clientbibliotheken installieren

Optional: Dieser Schritt kann übersprungen werden, wenn Sie Cloud Shell oder eine lokale Umgebung verwenden, in der Sie die Clientbibliotheken bereits installiert haben. Das ist nur erforderlich, wenn Sie lokal entwickeln und die Tools noch nicht installiert haben oder sich nicht sicher sind, ob sie installiert sind. Am einfachsten ist es, pip (oder pip3) für die Installation zu verwenden. Bei Bedarf wird dabei auch pip aktualisiert:

pip install -U pip google-api-python-client oauth2client

Installation bestätigen

Mit diesem Befehl wird die Clientbibliothek sowie alle Pakete installiert, von denen sie abhängt. Unabhängig davon, ob Sie Cloud Shell oder Ihre eigene Umgebung verwenden, prüfen Sie, ob die Clientbibliothek installiert ist. Importieren Sie dazu die erforderlichen Pakete und bestätigen Sie, dass keine Importfehler (und keine Ausgabe) vorhanden sind:

python3 -c "import googleapiclient, httplib2, oauth2client"

Wenn Sie stattdessen Python 2 (über Cloud Shell) verwenden, erhalten Sie eine Warnung, dass die Unterstützung dafür eingestellt wurde:

*******************************************************************************
Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
See https://cloud.google.com/python/docs/python2-sunset

To suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command will automatically proceed in seconds or on any key.
*******************************************************************************

Sobald Sie diesen „Test“-Befehl für den Import erfolgreich ausführen können (keine Fehler/Ausgabe), können Sie mit Google APIs interagieren.

Zusammenfassung

Da es sich um ein einführendes Codelab handelt, wird davon ausgegangen, dass Sie noch keine Erfahrung mit Google- und Google Workspace-APIs haben. Wenn Sie bereits Erfahrung mit dem Erstellen von Projekten und OAuth-Client-IDs für die Nutzerautorisierung haben. Wenn ja, erstellen Sie ein neues oder verwenden Sie ein vorhandenes Projekt und erstellen Sie eine neue oder verwenden Sie eine vorhandene OAuth-Client-ID. Überspringen Sie die nächsten beiden Module und fahren Sie direkt mit „Anzeigen Ihrer Drive-Dateien und -Ordner-Anwendung“ oder „Erweiterte Verwendung der Entwicklerkonsole“ fort, um diese Schritte mit weniger Anleitung zu durchlaufen.

6. Projekt in der Cloud Console angeben

Für eine Anwendung, die Google APIs verwendet, ist ein Projekt erforderlich. Diese werden in der Google Cloud Developers Console oder kurz „DevConsole“ verwaltet. In diesem Codelab verwenden wir nur die Google Drive API. Daher haben wir einen Magic-Link (unten in Schritt 1), der Folgendes tut:

  • Sie werden zur Entwicklerkonsole weitergeleitet.
  • Sie werden durch die Erstellung eines neuen Projekts (oder die Auswahl eines vorhandenen Projekts) geführt.
  • Aktiviert die Drive API automatisch

Los gehts!

  1. Rufen Sie console.developers.google.com/start/api?id=drive auf und melden Sie sich in Ihrem Google-Konto an.
  2. Wenn Sie noch keine Projekte haben, wird dieser Bildschirm angezeigt, auf dem Sie die Nutzungsbedingungen für Google APIs akzeptieren können:

e3b2076ba58a7cd7.png Nachdem Sie die Nutzungsbedingungen akzeptiert haben, wird ein neues Projekt mit dem Namen Mein Projekt erstellt und die Drive API automatisch aktiviert. 3. Wenn Sie bereits ein Projekt erstellt haben (vielleicht für ein früheres Codelab?), wird stattdessen dieser Bildschirm angezeigt: 50b3b8ace6721f1f.png Wenn Sie auf das Drop-down-Menü Projekt erstellen klicken, können Sie ein vorhandenes Projekt auswählen oder ein neues Projekt erstellen. 69db3867445ad9e5.png Nachdem Sie Ihre Auswahl getroffen haben (neues oder vorhandenes Projekt), wird die Drive API automatisch für Sie aktiviert. 4. Sie erkennen daran, dass die Drive API aktiviert wurde: 365e7de1377493bb.png 5. Klicken Sie auf Zu den Anmeldedaten, um mit dem nächsten Schritt fortzufahren.

7. *API-Anfragen autorisieren (Nutzerautorisierung)

Dieser Abschnitt kann übersprungen werden, wenn Sie bereits Anmeldedaten für die Nutzerkontoautorisierung erstellt haben und mit dem Vorgang vertraut sind. Sie unterscheidet sich von der Dienstkontoautorisierung, deren Technik sich unterscheidet. Lesen Sie daher bitte unten weiter.

Einführung in die Autorisierung (und einige Authentifizierungen)

Für Anfragen an die APIs muss Ihre Anwendung die entsprechende Autorisierung haben. Authentifizierung ist ein ähnliches Wort und beschreibt Anmeldedaten. Sie authentifizieren sich, wenn Sie sich mit einem Nutzernamen und einem Passwort in Ihrem Google-Konto anmelden. Nach der Authentifizierung muss geprüft werden, ob Sie bzw. Ihr Code autorisiert sind, auf Daten zuzugreifen, z. B. auf Blob-Dateien in Cloud Storage oder auf die persönlichen Dateien eines Nutzers in Google Drive.

Google APIs unterstützen verschiedene Arten der Autorisierung. Die häufigste für Google Workspace API-Nutzer ist die Nutzerautorisierung, da die Beispielanwendung in diesem Codelab auf Daten von Endnutzern zugreift. Diese Endnutzer müssen Ihrer App die Berechtigung zum Zugriff auf ihre Daten erteilen. Das bedeutet, dass Ihr Code OAuth2-Anmeldedaten für das Nutzerkonto abrufen muss.

Wenn Sie OAuth2-Anmeldedaten für die Nutzerautorisierung abrufen möchten, kehren Sie zum API-Manager zurück und wählen Sie in der linken Navigationsleiste den Tab „Anmeldedaten“ aus:

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

Dort sehen Sie alle Ihre Anmeldedaten in drei separaten Bereichen:

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

Die erste ist für API-Schlüssel, die zweite für OAuth 2.0-Client-IDs und die letzte für OAuth2-Dienstkonten. Wir verwenden die mittlere.

Anmeldedaten erstellen

Klicken Sie auf der Seite „Anmeldedaten“ oben auf die Schaltfläche + Anmeldedaten erstellen. Daraufhin wird ein Dialogfeld geöffnet, in dem Sie „OAuth-Client-ID“ auswählen können:

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

Auf dem nächsten Bildschirm haben Sie zwei Möglichkeiten: Sie können den Zustimmungsbildschirm für die Autorisierung Ihrer App konfigurieren und den Anwendungstyp auswählen:

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

Wenn Sie keinen Zustimmungsbildschirm festgelegt haben, wird die Warnung in der Konsole angezeigt und Sie müssen dies jetzt tun. Überspringen Sie die nächsten Schritte, wenn Ihr Zustimmungsbildschirm bereits eingerichtet wurde.

Klicken Sie auf „Zustimmungsbildschirm konfigurieren“ und wählen Sie eine „externe“ App aus (oder „intern“, wenn Sie Google Workspace-Kunde sind [früher „G Suite“]):

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

Für diese Übung spielt es keine Rolle, welche Option Sie auswählen, da Sie Ihr Codelab-Beispiel nicht veröffentlichen. Die meisten Nutzer wählen „Extern“ aus und gelangen so zu einem komplexeren Bildschirm. Sie müssen jedoch nur das Feld „Anwendungsname“ oben ausfüllen:

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

Sie benötigen zu diesem Zeitpunkt nur einen Anwendungsnamen. Wählen Sie einen Namen aus, der das Codelab widerspiegelt, das Sie gerade durchführen, und klicken Sie dann auf Speichern.

OAuth-Client-ID erstellen (Nutzerkontoautorisierung)

Kehren Sie nun zum Tab „Anmeldedaten“ zurück, um eine OAuth2-Client-ID zu erstellen. Hier sehen Sie verschiedene OAuth-Client-IDs, die Sie erstellen können:

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

Wir entwickeln ein Befehlszeilentool, das als Andere eingestuft wird. Wählen Sie diese Option aus und klicken Sie auf die Schaltfläche Erstellen. Wählen Sie einen Client-ID-Namen aus, der die App widerspiegelt, die Sie erstellen, oder übernehmen Sie einfach den Standardnamen, der in der Regel „Anderer Client N“ lautet.

Anmeldedaten speichern

  1. Ein Dialogfeld mit den neuen Anmeldedaten wird angezeigt. Klicken Sie auf OK, um es zu schließen.

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. Scrollen Sie auf der Seite „Anmeldedaten“ nach unten zum Bereich „OAuth 2.0-Client-IDs“ und klicken Sie ganz rechts unten neben der neu erstellten Client-ID auf das Downloadsymbol aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQx-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. Daraufhin wird ein Dialogfeld geöffnet, in dem Sie eine Datei mit dem Namen client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json speichern können, wahrscheinlich im Ordner Downloads. Wir empfehlen, den Namen zu kürzen, z. B. zu client_secret.json (wie in der Beispiel-App verwendet). Speichern Sie die Datei dann in dem Verzeichnis/Ordner, in dem Sie die Beispiel-App in diesem Codelab erstellen.

Zusammenfassung

Mit den Anmeldedaten können Sie jetzt über Ihre App auf die Drive API zugreifen. Dabei ist zu beachten, dass Ihre Nutzer Ihrer App die Berechtigung zum Zugriff auf ihre Daten in Google Drive erteilen müssen.

NOTE: Weitere Informationen zum manuellen Erstellen von Projekten, Aktivieren von APIs und Abrufen von Anmeldedaten (d.h. ohne Verwendung des oben genannten Assistenten) sind nach Abschluss dieses Codelabs verfügbar.

8. Anzeigen der Anwendung „Google Drive-Dateien und -Ordner“

Erstellen Sie in Ihrer lokalen Entwicklungsumgebung oder in Cloud Shell im selben Verzeichnis, in dem sich Ihre client_id.json-Datei mit den Anmeldedaten befindet, eine neue Python-Datei mit dem Namen drive_list.py und fügen Sie die folgenden Codezeilen hinzu:

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])

Anwendungsstruktur

Die Anwendung besteht aus drei Hauptbereichen:

  1. Python-Importe zum Einbinden von Bibliotheksfunktionen
  2. Anmeldedaten für Anwendungen abrufen
  3. Dateinamen, Ordnernamen und MIME-Typen aus dem Google Drive des Nutzers abrufen und anzeigen

NOTE: Eine detailliertere Analyse des Codes und eine Zeile-für-Zeile-Erklärung sind nach Abschluss dieses Codelabs verfügbar.

Anwendung ausführen

Geben Sie dieser Datei einen Namen wie drive_list.py. Wenn Sie das Script zum ersten Mal ausführen, hat es keine Autorisierung für den Zugriff auf die Dateien des Nutzers (Ihre) in Drive. Die Ausgabe sieht so aus, wenn die Ausführung pausiert wird:

$ python3 ./drive_list.py
/usr/local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Your browser has been opened to visit:
  https://accounts.google.com/o/oauth2/auth?client_id=LONG-STRING.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

Aus der lokalen Entwicklungsumgebung

Das Befehlszeilenskript wird angehalten, da ein Browserfenster geöffnet wird, in dem das OAuth2-Berechtigungsdialogfeld angezeigt wird:

c2648f37bcb7a0c1.png

Hier fordert die Anwendung den Nutzer auf, die Berechtigungen zu erteilen, die im Code (über die Variable SCOPES) angefordert werden. In diesem Fall ist es die Möglichkeit, die Dateimetadaten aus dem Google Drive des Nutzers aufzurufen. Ja. In Ihrem Code werden diese Berechtigungsbereiche als URIs angezeigt, sie werden aber im Dialogfenster des OAuth2-Vorgangs in die Sprache übersetzt, die in Ihrem Gebietsschema angegeben ist. Der Nutzer muss die angeforderten Berechtigungen explizit autorisieren. Andernfalls wird im Teil des Codes, in dem der Ablauf ausgeführt wird, eine Ausnahme ausgelöst und das Skript wird nicht fortgesetzt.

NOTE: Einige Nutzer haben mehrere Browser und die Autorisierungsanfrage wird möglicherweise in einem nicht bevorzugten Browser angezeigt. Kopieren Sie in diesem Fall einfach die gesamte URL aus dem Browserfenster, das Sie nicht verwenden möchten, und fügen Sie sie in die Adressleiste eines Browsers ein, den Sie verwenden möchten.

Über Cloud Shell

Wenn Sie nicht aufgepasst und das Programm in Cloud Shell ausgeführt haben, wurde kein Browserfenster geöffnet und Sie können nicht fortfahren. Die Diagnosemeldung unten war für Sie bestimmt:

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

Wenn Sie den Code auf diese Weise ausführen, erhalten Sie stattdessen die folgende Ausgabe:

$ python3 drive_list.py --noauth_local_webserver
/usr/local/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Go to the following link in your browser:

  https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

Enter verification code:

Wenn Sie der Anleitung folgen und in einem anderen Browser-Tab diese URL aufrufen, erhalten Sie ein Ergebnis, das dem oben für lokale Entwicklungsumgebungen beschriebenen Ergebnis nahezu identisch ist. Der Hauptunterschied besteht am Ende, wo Sie einen weiteren Bildschirm mit dem Bestätigungscode sehen, den Sie in Cloud Shell eingeben müssen:

f6da2c335fb7c6a.png

Kopieren Sie diesen Code und fügen Sie ihn in das Terminalfenster ein.

Zusammenfassung

Sobald der Nutzer auf „Zulassen“ klickt und/oder der Bestätigungscode in den Prompt eingefügt wird, wird die App (weiter) ausgeführt. Sie können also mit einer Ausgabe rechnen, die aus Drive-Dateien/-Ordnern und ihren MIME-Typen besteht. Hier ist ein Beispiel aus einem unserer Testkonten:

$ python3 ./drive_list.py
Travel expenses application/vnd.google-apps.spreadsheet
Gmail Add-ons codelab application/vnd.google-apps.script
Google Workspace Developer Intro application/vnd.google-apps.presentation
Baseball Sheets application/vnd.google-apps.folder
My Resume application/vnd.google-apps.document
  . . .

Bei nachfolgenden Ausführungen werden Sie nicht mehr zur Autorisierung aufgefordert, da diese von den Authentifizierungsbibliotheken zwischengespeichert wurde. Sie gelangen direkt zur Ausgabe. Ist es nicht aufregend, Ihre Dokumente zum ersten Mal in einem Terminal zu sehen? Das finden wir auch!

9. Fazit

Jetzt sind Sie bereit, tiefer in die Funktionen der Drive API einzusteigen und auch andere Google Workspace-APIs (Gmail, Google Docs, Sheets, Präsentationen, Kalender) und andere Google-APIs (Maps, Analytics, YouTube usw.) kennenzulernen. Herzlichen Glückwunsch, dass Sie es bis zum Ende geschafft haben!

Den Code aus diesem Codelab finden Sie auch im GitHub-Repository unter github.com/googlecodelabs/gsuite-apis-intro. Wir versuchen, dieses Codelab und das Repository auf dem gleichen Stand zu halten. Wollen wir weitermachen? Die folgenden Links bieten Ihnen die Möglichkeit, tiefer in das Thema dieses Codelabs einzusteigen und noch mehr Wege kennenzulernen, programmatisch auf Google-Technologien zuzugreifen.

Wie bereits erwähnt, können Sie dieses Codelab-Beispiel auch in Ihrer bevorzugten Entwicklungssprache nachvollziehen, wenn Sie kein regelmäßiger Python-Entwickler sind. Clientbibliotheken für unterstützte Sprachen sind hier verfügbar.

Zusätzliche Informationen

Nachdem Sie nun einige Erfahrungen mit der Drive API gesammelt haben, finden Sie unten einige empfohlene Übungen, mit denen Sie Ihre Fähigkeiten weiter ausbauen können:

  1. ZIP-Dateien: Schreiben Sie eine Anwendung, mit der mehrere ZIP-Archive in Drive gesichert werden. Die Dateien werden dabei direkt entpackt, sodass jeder ZIP-Dateiname dem Namen des Ordners entspricht, in den die Dateien verschoben werden. ZUSÄTZLICHE ANFORDERUNG: Unterstützung rekursiver ZIP-Archive innerhalb anderer ZIP-Dateien mit Drive-Ordnern, die in andere Ordner eingebettet sind. Wenn Sie aufgeben, sehen Sie sich diese Node.js-Beispielanwendung an.
  2. Fotoalben: Schreiben Sie den Anfang eines Tools zum Erstellen von Fotoalben, mit dem mehrere Bilder in Google Drive hochgeladen und nach Zeitstempel und geografischem Standort in separaten Ordnern organisiert werden. ZUSATZAUFGABE: Suchen Sie nach einer Open-Source-Bibliothek zur Bildbearbeitung und fügen Sie alle Fotos in jedem Ordner zusammen, um Ereignisse darzustellen, die Sie möglicherweise erlebt haben (z. B. eine Reise oder ein Abendessen).
  3. GCP kennenlernen: Schreiben Sie eine App, die Google Workspace und die Google Cloud Platform (GCP) miteinander verbindet. Schreibe ein Tool, das Bilddateien von Google Drive in Google Cloud Storage (GCS), eine andere „Dateispeicher in der Cloud“-Lösung, sichert. Die Verwendung von GCS ist aufgrund der erweiterten Clientbibliotheken einfacher als die von Drive.
  4. Analysieren und aufzeichnen: Erweitern Sie Ihre Lösung auf Schritt 3, indem Sie jedes gesicherte Bild analysieren. Dazu übergeben Sie es an die Google Cloud Vision API und rufen die wichtigsten (3, 5, 10) „Labels“ ab, die die API in den Bildern erkennt. Schreiben Sie für jedes Bild eine Zeile in ein Google-Tabellenblatt, die die Analyse von Cloud Vision sowie den gesicherten Speicherort in GCS enthält. Wenn Sie aufgeben, finden Sie hier ein Python-Codelab.

10. Zusätzliche Ressourcen

Dokumentation

Neuigkeiten & Updates

Weitere Codelabs

Einführung

Fortgeschritten

Erweitert

Referenz-Apps

11. *Ausführliche Beschreibung der Anwendung

Dieser optionale Abschnitt kann nach der Sitzung zum Selbststudium verwendet werden, um eventuelle Lücken zu schließen oder weitere Informationen zu erhalten.

Python-Importe zum Einbinden von Bibliotheksfunktionen

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
  • Mit der ersten import-Anweisung kann dieser Code in Python 2 ausgeführt werden. Wenn Sie nur Python 3 verwenden, kann sie vollständig entfernt werden.
  • Eine Python-Stilrichtlinie besagt, dass Importe von Standardbibliotheken und Drittanbietermodulen getrennt werden sollen. Dazu dient die Leerzeile.
  • Mit den nächsten drei Importen werden die erforderlichen Klassen und Funktionen aus der Google APIs-Clientbibliothek importiert. Sie sind alle für das Schreiben dieser App erforderlich. Hier eine kurze Beschreibung:
  • googleapiclient konzentriert sich auf die Verbindung zu Google APIs
  • httplib2 stellt einen HTTP-Client für die App bereit.
  • oauth2client hilft uns bei der Verwaltung von OAuth2-Anmeldedaten

Autorisierung und Abrufen von Anmeldedaten für Anwendungen

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
  • SCOPES-Berechtigungen sind die Berechtigungen, die eine App vom Nutzer anfordert, der sie ausführt. Zum Schutz von Nutzerdaten können Apps nur ausgeführt werden, wenn ihnen die Berechtigung erteilt wurde.
  • Als Best Practice empfehlen wir, die restriktivsten Berechtigungen zu verwenden, die für die Funktion Ihrer App erforderlich sind. Warum?
  • Ist es nicht ärgerlich, wenn eine App bei der Installation oder Ausführung eine Vielzahl von Berechtigungen anfordert? Weißt du was? Jetzt sind Sie auf der anderen Seite und bitten Ihre Nutzer um all diese Berechtigungen. Wenn Sie restriktivere Bereiche verwenden, fühlen sich Nutzer wohler, wenn sie Ihre App installieren, da Sie weniger Zugriff anfordern.
  • Die meisten Bereiche sehen wie lange URLs aus, so auch der Bereich für Drive-Metadaten.
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
  • Für die Kommunikation von Apps mit Google-Servern ist ein Token erforderlich. Gültige Tokens, die von Google zurückgegeben werden, werden in der Tokenspeicherdatei storage.json gespeichert. Wenn Sie diese Tokens nicht speichern, müssen Sie Ihre App jedes Mal neu autorisieren, wenn Sie sie ausführen.
store = file.Storage('storage.json')
  • Diese App prüft zuerst, ob bereits gültige Anmeldedaten im Speicher vorhanden sind (siehe die bedingte if-Anweisung).
creds = store.get()
if not creds or creds.invalid:
  • Wenn Sie keine oder abgelaufene Anmeldedaten haben, muss ein neuer Autorisierungsablauf [über oauth2client.client.flow_from_clientsecrets()] aus Ihrer OAuth-Client-ID und Ihrem OAuth-Client-Secret in der heruntergeladenen Datei client_id.json erstellt werden.
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
  • Sobald Ihre App einen Ablauf hat, muss dieser ausgeführt werden, damit dem Nutzer der oben beschriebene und abgebildete OAuth2-Berechtigungsbildschirm [über oauth2client.tools.run_flow()] angezeigt wird.
    creds = tools.run_flow(flow, store)
  • Wenn Nutzer auf Zulassen klicken, stimmen sie zu, dass Ihre App auf die Metadaten ihrer Google Drive-Dateien zugreifen darf. Google-Server geben dann Tokens für den Zugriff auf die API zurück. Sie werden als creds zurückgegeben und in der Datei storage.json im Cache gespeichert.
  • Ihre App hat jetzt gültige Anmeldedaten für API-Aufrufe. Durch den Aufruf von googleapiclient.discovery.build() wird ein Dienstendpunkt für die verwendete API erstellt.
  • Wenn Sie build() verwenden möchten, übergeben Sie den API-Namen ('drive') und die gewünschte Version (derzeit 'v3').
  • Der letzte Parameter ist ein HTTP-Client, der für verschlüsselte API-Aufrufe verwendet werden soll.
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

Die ersten 100 Drive-Dateien/-Ordner und ‑MIME-Typen abrufen und anzeigen

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])
  • In der nächsten Zeile des Codes wird die Methode list() in der Sammlung files() für die Drive API aufgerufen, um die Anfrage zu erstellen, die sofort mit execute() aufgerufen wird. Es wird ein Python-dict zurückgegeben, aus dem wir den 'files'-Schlüssel anfordern, um die 100 Datei- und Ordnernamen aus dem Google Drive des Nutzers abzurufen (oder weniger, wenn Sie weniger Dateien haben).
  • Warum 100? Das ist die Standardeinstellung ab DRIVE.files().list(). Wenn Sie diese Zahl ändern möchten, z. B. auf 10 oder 1.000 Dateien, fügen Sie den Parameter pageSize in Ihre Anfrage ein: DRIVE.files().list(pageSize=10). Hier finden Sie die Dokumentation mit weiteren Optionen.
  • Im letzten Teil des Skripts wird jede Datei durchlaufen und ihr Name und ihr MIME-Typ angezeigt.

Sie haben jetzt Ihre erste Anwendung geschrieben, die eine Google REST API verwendet. Herzlichen Glückwunsch! Abgesehen von den Importen und dem Autorisierungscode besteht dieses Skript nur aus wenigen Codezeilen (siehe oben). Die meisten Google-APIs funktionieren auf ähnliche Weise. Sie müssen nur für jede API, die Sie verwenden möchten, Dienstendpunkte erstellen.

Mehrere Google-APIs in einer App verwenden

Ja, Sie können in derselben App mehrere APIs verwenden. Hier ist ein Python-Code-Snippet für eine App, die denselben HTTP-Client wiederverwendet und Dienstendpunkte für drei Google-APIs erstellt (ja, auch mit drei verschiedenen SCOPES):

SCOPES = (
    'https://www.googleapis.com/auth/drive',
    'https://www.googleapis.com/auth/spreadsheets.readonly',
    'https://www.googleapis.com/auth/presentations',
)

    . . .

HTTP   = creds.authorize(Http())
DRIVE  = discovery.build('drive',  'v3', http=HTTP)
SHEETS = discovery.build('sheets', 'v4', http=HTTP)
SLIDES = discovery.build('slides', 'v1', http=HTTP)

Wir stellen uns vor, dass dieser Code Teil einer App sein kann, die mehrere Präsentationen (Slides API) basierend auf Tabellendaten (Sheets API) generiert und eine Folienvorlage verwendet, die für jede generierte Präsentation kopiert wird (Drive API). Eine solche App gibt es zwar nicht, aber Sie können etwas Ähnliches erstellen, indem Sie zwei vorhandene Beispiele verwenden, die das Google Workspace-Team als Bausteine erstellt hat:

  • Text und Bilder in Folien ersetzen ( Blogbeitrag und Video): Hier wird die Drive API verwendet, um eine Folienvorlage zu kopieren. Anschließend wird die Slides API eingesetzt, um die Text- und Bildplatzhalter zu ändern.
  • Folien aus Tabellendaten generieren ( Blogbeitrag und Video): Daten aus einer Tabelle (Sheets API) werden gelesen und auf Grundlage dieser Daten werden Folien (Slides API) erstellt.

Ihre Aufgabe: Erstellen Sie diese App!

12. *Erweiterte Nutzung der Entwicklerkonsole

In diesem optionalen Abschnitt wird beschrieben, wie Sie Projekte in der DevConsole erstellen, APIs aktivieren und Anmeldedaten abrufen – alles ohne den Assistenten wie oben im Codelab zu verwenden. Diese Anleitung richtet sich an fortgeschrittene Nutzer, die die Einrichtung manuell vornehmen möchten oder lernen möchten, wie das geht.

Projekt in der Cloud Console angeben

Wenn Sie eine Anwendung mit Google APIs entwickeln, benötigen Sie ein Projekt. Sie können entweder ein vorhandenes Projekt wiederverwenden oder ein neues erstellen. Das erfolgt in der Cloud Console. Einige Codelabs bieten einen Magic Link (z.B. einen Einrichtungsassistenten), mit dem Sie schnell loslegen und viele der erforderlichen Schritte überspringen können. Da dies nicht bei allen der Fall ist, soll diese Anleitung eine allgemeine Anleitung zum Erstellen von Projekten sein.

Sie können Projekte auf den meisten Bildschirmen in der Cloud Console erstellen, sofern Sie sich mit Ihren Google-Anmeldedaten angemeldet haben und oben in der Console ein Drop-down-Menü für Projekte angezeigt wird. Die meisten Screenshots hier stammen aus dem API Manager, auch bekannt als Developers Console. Sie können ihn ganz einfach aufrufen, indem Sie in der linken Navigationsleiste auf „API Manager“ klicken oder Ihren Browser direkt auf console.developers.google.com verweisen.

  1. Wenn Sie noch keine Projekte haben, werden Sie möglicherweise zu...
  2. Auf der Seite Dashboard: Gwkk2zcSPOHlRzCGsmBDqfdsEMopOgJyJzh6TunpVFOP3R7bN0-iGt81mNueGxoAei6wCqgQBENsamw3v4ozZJtQgKva6v_90dYJ-rvQjUn9U89avlG1tepDYT9HHjZmYixLD0hACQ
  3. Seite „Bibliothek“: NqfejNuo6fJfiTXERiCNAFTnno1JGgudf7M2zVyM9DzXP4E6ruoVxHvFQOPW-HFL5SZvm-WohzPTf7njBS9VCwuu4XnwhQ7CB83tNkH0jsYEx31hO6UMBVHPJS1BMjidg5kh-c7MEw
  4. oder eine völlig leere Seite: LcJ-wgOFlYa9uZm46fwUkfFTkXIcbhuk607KDaCz8_8NM09RHblz6T5JoWhH7uwSE2q6hKW9XnlutzUqd8yvRAEXFzQjqNNTuscj19yKGkMjbPixeUB8-F1y4Tz7eCpeOEzBUw70yw Wenn das passiert, aktualisiere einfach den Browser, um zur Seite Mediathek zu gelangen.
  5. Klicken Sie auf der Seite Dashboard oder Mediathek oben auf der Seite auf die Projektauswahl: 3f5REVgveKDcJ8wG2C9gduFBftJb6RNtdQQJ79vwFmQCMU8_t_vxja8jPGIK-ZrpjSqGkRkY4k02xth-7FWNPj4GZUdcBmKQe97LporGaLvwIFzzR5wtH5mEEoA1a74_fnrh9YAqqg
  6. Als Nächstes wird das Auswahlfeld angezeigt. Klicken Sie rechts auf das „+“, um ein neues Projekt zu erstellen: jNzs1bp1eWkpJT3S3AGTm9ejYT2mB3rEd1QajOhO0AR3YxcwaCcF4WlMzdmgOFtlIPQfGEMUysM6m7r89_Fc0Dyy--mjPhCEKdLRZjaozLOvoZOzKtIxdMoWFHCVc2N1K-2HES_k4Q
  7. Nachdem Sie auf das „+“ geklickt haben, wird die Seite Neues Projekt angezeigt. Alle Privatnutzerkonten erhalten standardmäßig 12 Projekte. Bevor Sie Ihr erstes Projekt erstellen können, müssen Sie die Nutzungsbedingungen für Google APIs akzeptieren: bCB0sQ6k5nfrajlhc-S61MVzyYYBqu6XVNKeRDzXNvKZUNlSeVJSLbkP8sPNi5A-5hWIFzhsQ5R_ER9BBb2bE_B02c1neY2iO5SSe6XDFldppsXbkWm63-0l3ugtSDQS-TeM1d773w

Danach werden die E-Mail-Anfrage und die Fragen zu den Nutzungsbedingungen beim Erstellen zukünftiger Projekte nicht mehr angezeigt:

Pj31ZKoAAnw_JiSz8io7e4yC2Xh3voETusvePf0DS64IMB4aVy9CtANg2r-2NgPxLjbqcfd-Vs33ZNdN7Diz7sZo3j-MKS83SuNXlhGT8ivdhpIvizP1dsYeK1MBQ4HlDZA5aQkIhg 5. Wenn Sie in der Vergangenheit mindestens ein Projekt erstellt haben, werden Sie nach der Anmeldung zum Dashboard des letzten Projekts weitergeleitet, an dem Sie gearbeitet haben. Erstellen Sie dort ein neues Projekt, indem Sie Projekt auswählen > + auswählen. Nachdem Ihr neues Projekt erstellt wurde, werden Sie wieder zur Seite Dashboard weitergeleitet: ana4q1H1Q8KNTBEVb62Cc6NVA8VZbxb6BLgf4-bLqLV-p7n8UWv3WW3FN-49CE0x1kARav3pelxOBwNuUDELmitMRFhUNXuaw9-CH9DO3Lek_ifnaI3ZsxSy67Z1UsBO95SPFqlf8Q

Sie haben jetzt ein Projekt erstellt und können fortfahren, indem Sie die APIs auswählen, die Sie für Ihr Projekt verwenden möchten.

Google APIs aktivieren

Bevor Sie Google APIs verwenden können, müssen Sie sie aktivieren. Im folgenden Beispiel wird gezeigt, wie Sie die Cloud Vision API aktivieren. In diesem Codelab verwenden Sie möglicherweise eine oder mehrere APIs. Sie sollten ähnliche Schritte ausführen, um sie vor der Verwendung zu aktivieren.

Über Cloud Shell

Mit Cloud Shell können Sie die API mit dem folgenden Befehl aktivieren:

gcloud services enable vision.googleapis.com

Über die Cloud Console

Sie können die Vision API auch im API Manager aktivieren. Rufen Sie in der Cloud Console den API-Manager auf und wählen Sie „Bibliothek“ aus.

mg03by3QV6kco0rVVV_8IA6VobAoMG4Yoyl-PofNM0dHK8IcoDmpoLUwWeiKFFjpxHWlS1td5-0n7kNkfqHVhSsTSW_hUMvRu3D72g3LCFb7u4v4bla_Z4XyonTVK8PpigMLJcE01g

Geben Sie in der Suchleiste „vision“ ein und wählen Sie dann die Vision API aus, wenn sie angezeigt wird. Während Sie tippen, könnte es etwa so aussehen:

B6fWWsVhymufgQx6oGIq4sgukK6JQ1VoguVOrSNf_anQb6Cv6RTLtsjx5Qdeu3-uO8-8PyqwZLYdDDjYW5o56R47cnsd_88RKTMqNkpFeDESW2hmBM_7FK2UAMz1_216yXERYSp_JA

Wählen Sie die Cloud Vision API aus, um das unten gezeigte Dialogfeld aufzurufen, und klicken Sie dann auf die Schaltfläche „Aktivieren“:

D-MONPLi0UWH6Dp607Dod6JF-LJQZIiUQEPQNKM4Y0mSt09KfipbeeXRAE6cokArBYTfL9VQoONc4L0jlnsUYLsNytQIPfSKr9lCDrXmrrx-1w64LeWWa-byDxcyYWZdCI0mAcVzBw

Kosten

Viele Google-APIs können kostenlos verwendet werden, die Nutzung von GCP (Produkte und APIs) ist jedoch nicht kostenlos. Wenn Sie die Vision API aktivieren (wie oben beschrieben), werden Sie möglicherweise aufgefordert, ein aktives Rechnungskonto anzugeben. Der Nutzer sollte sich vor der Aktivierung die Preisinformationen der Vision API ansehen. Für bestimmte Google Cloud Platform-Produkte (GCP) gibt es eine kostenlose Stufe, die Sie überschreiten müssen, damit Kosten anfallen. Für dieses Codelab wird jeder Aufruf der Vision API auf dieses kostenlose Kontingent angerechnet. Solange Sie die Grenzwerte insgesamt (innerhalb eines Monats) nicht überschreiten, sollten keine Gebühren anfallen.

Einige Google APIs, z.B. Die Nutzung von Google Workspace ist durch ein monatliches Abo abgedeckt. Daher erfolgt keine direkte Abrechnung für die Nutzung der Gmail, Google Drive, Kalender, Docs, Sheets und Präsentationen APIs. Die Abrechnung für verschiedene Google-Produkte erfolgt unterschiedlich. Weitere Informationen finden Sie in der Dokumentation Ihrer API.

Zusammenfassung

In diesem Codelab müssen Sie nur die Google Drive API aktivieren. Folgen Sie dazu der Anleitung oben und suchen Sie nach „Drive“. Fahren Sie fort, sobald die Funktion aktiviert ist.

API-Anfragen autorisieren (Nutzerautorisierung)

Einführung in die Autorisierung (und einige Authentifizierungen)

Für Anfragen an die APIs muss Ihre Anwendung die entsprechende Autorisierung haben. Authentifizierung ist ein ähnliches Wort und beschreibt Anmeldedaten. Sie authentifizieren sich, wenn Sie sich mit einem Nutzernamen und einem Passwort in Ihrem Google-Konto anmelden. Nach der Authentifizierung muss geprüft werden, ob Sie bzw. Ihr Code autorisiert sind, auf Daten zuzugreifen, z. B. auf Blob-Dateien in Cloud Storage oder auf die persönlichen Dateien eines Nutzers in Google Drive.

Google APIs unterstützen verschiedene Arten der Autorisierung. Die häufigste für Google Workspace API-Nutzer ist die Nutzerautorisierung, da die Beispielanwendung in diesem Codelab auf Daten von Endnutzern zugreift. Diese Endnutzer müssen Ihrer App die Berechtigung zum Zugriff auf ihre Daten erteilen. Das bedeutet, dass Ihr Code OAuth2-Anmeldedaten für das Nutzerkonto abrufen muss.

Wenn Sie OAuth2-Anmeldedaten für die Nutzerautorisierung abrufen möchten, kehren Sie zum API-Manager zurück und wählen Sie in der linken Navigationsleiste den Tab „Anmeldedaten“ aus:

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

Dort sehen Sie alle Ihre Anmeldedaten in drei separaten Bereichen:

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

Die erste ist für API-Schlüssel, die zweite für OAuth 2.0-Client-IDs und die letzte für OAuth2-Dienstkonten. Wir verwenden die mittlere.

Anmeldedaten erstellen

Klicken Sie auf der Seite „Anmeldedaten“ oben auf die Schaltfläche + Anmeldedaten erstellen. Daraufhin wird ein Dialogfeld geöffnet, in dem Sie „OAuth-Client-ID“ auswählen können:

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

Auf dem nächsten Bildschirm haben Sie zwei Möglichkeiten: Sie können den Zustimmungsbildschirm für die Autorisierung Ihrer App konfigurieren und den Anwendungstyp auswählen:

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

Wenn Sie keinen Zustimmungsbildschirm festgelegt haben, wird die Warnung in der Konsole angezeigt und Sie müssen dies jetzt tun. Überspringen Sie die nächsten Schritte, wenn Ihr Zustimmungsbildschirm bereits eingerichtet wurde.

Klicken Sie auf „Zustimmungsbildschirm konfigurieren“ und wählen Sie eine „externe“ App aus (oder „intern“, wenn Sie Google Workspace-Kunde sind):

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

Für diese Übung spielt es keine Rolle, welche Option Sie auswählen, da Sie Ihr Codelab-Beispiel nicht veröffentlichen. Die meisten Nutzer wählen „Extern“ aus und gelangen so zu einem komplexeren Bildschirm. Sie müssen jedoch nur das Feld „Anwendungsname“ oben ausfüllen:

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

Sie benötigen zu diesem Zeitpunkt nur einen Anwendungsnamen. Wählen Sie einen Namen aus, der das Codelab widerspiegelt, das Sie gerade durchführen, und klicken Sie dann auf Speichern.

OAuth-Client-ID erstellen (Nutzerkontoautorisierung)

Kehren Sie nun zum Tab „Anmeldedaten“ zurück, um eine OAuth2-Client-ID zu erstellen. Hier sehen Sie verschiedene OAuth-Client-IDs, die Sie erstellen können:

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

Wir entwickeln ein Befehlszeilentool, das als Andere eingestuft wird. Wählen Sie diese Option aus und klicken Sie auf die Schaltfläche Erstellen. Wählen Sie einen Client-ID-Namen aus, der die App widerspiegelt, die Sie erstellen, oder übernehmen Sie einfach den Standardnamen, der in der Regel „Anderer Client N“ lautet.

Anmeldedaten speichern

  1. Ein Dialogfeld mit den neuen Anmeldedaten wird angezeigt. Klicken Sie auf OK, um es zu schließen.

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. Scrollen Sie auf der Seite „Anmeldedaten“ nach unten zum Bereich „OAuth 2.0-Client-IDs“ und klicken Sie ganz rechts unten neben der neu erstellten Client-ID auf das Downloadsymbol aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQx-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. Daraufhin wird ein Dialogfeld geöffnet, in dem Sie eine Datei mit dem Namen client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json speichern können, wahrscheinlich im Ordner Downloads. Wir empfehlen, den Namen zu kürzen, z. B. zu client_secret.json (wie in der Beispiel-App verwendet). Speichern Sie die Datei dann in dem Verzeichnis/Ordner, in dem Sie die Beispiel-App in diesem Codelab erstellen.