Freigeben über


Authentifizieren mit Google-Diensten

Wenn Ihr Skript Google-Dienste wie Google Drive, Sheets und Mail verwendet, müssen Sie Anmeldeinformationen abrufen. Es gibt einige Optionen zum Abrufen der Anmeldeinformationen:

  • Option 1 – Einfach zu verfolgen und nimmt weniger Zeit in Anspruch, aber Sie müssen dies stündlich wiederholen, wenn das Zugriffstoken abläuft.
  • Option 2 – Etwas komplizierter, aber Sie müssen es nur wiederholen, wenn das Aktualisierungstoken ungültig wird.
  • Option 3 – Auch etwas komplizierter (verwendet das bereitgestellte PowerShell-Skript), aber Sie müssen es nur wiederholen, wenn das Aktualisierungstoken ungültig wird.

Option 1: Abrufen eines Zugriffstokens aus dem Google OAuth-Playground

  1. Zum Google OAuth-Playground wechseln
  2. Fügen Sie unter Geben Sie Ihre eigenen Bereiche ein. https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  3. Auswählen von ApIs autorisieren
  4. Wählen Sie nach der Autorisierung der APIs Exchange-Autorisierungscode für Token aus.
  5. Kopieren des Werts des access_token aus der Antwort
  6. Legen Sie in Lösungen wie "Discovering disapproved ads", die auf Google-Dienste zugreifen, das Feld des Anmeldeinformationsobjekts accessToken auf das in Schritt 5 kopierte Zugriffstoken fest.

Hinweis

Da das Zugriffstoken in einer Stunde abläuft, müssen Sie diese Schritte stündlich wiederholen.

Option 2: Abrufen eines Aktualisierungstokens aus dem Google OAuth-Playground

  1. Navigieren Sie zur API-Dashboard für die Google-Entwicklerkonsole.
  2. Wählen Sie Projekt erstellen aus , um ein neues Projekt zu erstellen, oder wählen Sie ein vorhandenes Projekt aus.
    1. Wenn Sie ein neues Projekt erstellen, geben Sie den Namen Ihres Projekts in Projektname ein. Beispiel: Skripts.
    2. Wählen Sie Erstellen aus
  3. Wählen Sie im DashboardDIE Option APIS UND DIENSTE AKTIVIEREN aus.
  4. Geben Sie im Suchfeld Blätter ein, und wählen Sie Google Sheets-API aus. Wählen Sie dann AKTIVIEREN aus.
  5. Zurück zum Dashboard (wählen Sie APIs & Services aus), und wiederholen Sie die Schritte 3 und 4 für die Google Drive-API.
  6. Zurück zum Dashboard (wählen Sie APIs & Services aus), und wiederholen Sie die Schritte 3 und 4 für die Gmail-API.
  7. Wählen Sie im Dashboard im linken Navigationsbereich Anmeldeinformationen und dann ZUSTIMMUNGSBILDSCHIRM KONFIGURIEREN aus. Wenn Sie aufgefordert werden, einen Benutzertyp auszuwählen, wählen Sie Extern und dann Erstellen aus.
  8. Geben Sie den Namen Ihrer Anwendung in das Feld Anwendungsname ein (z. B. Skriptclient), und geben Sie Ihre E-Mail-Adresse in die Felder ein, in denen sie gefragt wird. Wählen Sie dann SPEICHERN UND FORTFAHREN aus.
  9. Wählen Sie BEREICHE HINZUFÜGEN ODER ENTFERNEN aus, und wählen Sie .. /auth/drive und .. /auth/gmail.send, und wählen Sie dann Aktualisieren aus.
  10. Wählen Sie SPEICHERN UND FORTFAHREN aus.
  11. Wählen Sie BENUTZER HINZUFÜGEN aus, geben Sie Ihre Google-E-Mail-Adresse ein, und wählen Sie HINZUFÜGEN aus.
  12. Wählen Sie im Dashboard im linken Navigationsbereich Anmeldeinformationen, dann Anmeldeinformationen erstellen und Oauth-Client-ID aus.
  13. Wählen Sie Webanwendungstyp aus. Geben Sie als Nächstes einen Namen wie Skript-Web-App in das Feld Name ein. Fügen Sie dann zu Autorisierte Umleitungs-URIs hinzuhttps://developers.google.com/oauthplayground. Wählen Sie abschließend Erstellen aus.
  14. Kopieren Sie Die Client-ID und den geheimen Clientschlüssel zur Verwendung in den Schritten 18, 19 und 24, und wählen Sie dann OK aus.
  15. Zum Google OAuth-Playground wechseln
  16. Wählen Sie das OAuth 2.0-Konfigurationssymbol aus (sieht wie ein Zahnrad in der oberen rechten Ecke aus)
  17. Aktivieren Sie das Kontrollkästchen Eigene OAuth-Anmeldeinformationen verwenden .
  18. Fügen Sie Ihre Client-ID in die OAuth-Client-ID ein.
  19. Fügen Sie Ihren geheimen Clientschlüssel in den geheimen OAuth-Clientschlüssel ein.
  20. Fügen Sie unter Geben Sie Ihre eigenen Bereiche ein. https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  21. Wählen Sie ApIs autorisieren aus, und folgen Sie den Anweisungen, um ihre Zustimmung zu erteilen.

Hinweis

Wenn beim Autorisieren von APIs im Playground ein Dialogfeld mit der Meldung "Diese App ist nicht überprüft" angezeigt wird, wählen Sie Erweitert und dann Gehe zu [App-Name] (unsicher) aus.

  1. Wählen Sie nach der Autorisierung der APIs Exchange-Autorisierungscode für Token aus.
  2. Kopieren Sie das Token aus dem Aktualisierungstoken , um es in Schritt 24 zu verwenden.
  3. Legen Sie in Lösungen wie Discovering disapped ads( Discovering disapped ads), die auf Google-Dienste zugreifen, die Felder , clientSecretund refreshToken des Anmeldeinformationsobjekts clientIdauf die Werte fest, die Sie in den Schritten 13 und 22 erhalten haben.

Option 3: Abrufen eines Aktualisierungstokens mithilfe eines PowerShell-Skripts

  1. Navigieren Sie zur API-Dashboard für die Google-Entwicklerkonsole.
  2. Wählen Sie Projekt erstellen aus , um ein neues Projekt zu erstellen, oder wählen Sie ein vorhandenes Projekt aus.
    1. Wenn Sie ein neues Projekt erstellen, geben Sie den Namen Ihres Projekts in Projektname ein. Beispiel: Skripts.
    2. Wählen Sie Erstellen aus
  3. Wählen Sie im DashboardDIE Option APIS UND DIENSTE AKTIVIEREN aus.
  4. Geben Sie im Suchfeld Blätter ein, und wählen Sie Google Sheets-API aus. Wählen Sie dann AKTIVIEREN aus.
  5. Zurück zum Dashboard (wählen Sie APIs & Services aus), und wiederholen Sie die Schritte 3 und 4 für die Google Drive-API.
  6. Zurück zum Dashboard (wählen Sie APIs & Services aus), und wiederholen Sie die Schritte 3 und 4 für die Gmail-API.
  7. Wählen Sie im Dashboard im linken Navigationsbereich Anmeldeinformationen und dann ZUSTIMMUNGSBILDSCHIRM KONFIGURIEREN aus. Wenn Sie aufgefordert werden, einen Benutzertyp auszuwählen, wählen Sie Extern und dann Erstellen aus.
  8. Geben Sie den Namen Ihrer Anwendung in das Feld Anwendungsname ein (z. B. Skriptclient), und geben Sie Ihre E-Mail-Adresse in die Felder ein, in denen sie gefragt wird. Wählen Sie dann SPEICHERN UND FORTFAHREN aus.
  9. Wählen Sie BEREICHE HINZUFÜGEN ODER ENTFERNEN aus, und wählen Sie .. /auth/drive und .. /auth/gmail.send, und wählen Sie dann Aktualisieren aus.
  10. Wählen Sie SPEICHERN UND FORTFAHREN aus.
  11. Wählen Sie BENUTZER HINZUFÜGEN aus, geben Sie Ihre Google-E-Mail-Adresse ein, und wählen Sie HINZUFÜGEN aus.
  12. Wählen Sie im Dashboard im linken Navigationsbereich Anmeldeinformationen, dann Anmeldeinformationen erstellen und Oauth-Client-ID aus.
  13. Wählen Sie Desktop-App-Anwendungstyp aus, geben Sie einen Namen ein (z. B. Skriptclient-Creds), und wählen Sie Erstellen aus.
  14. Kopieren Sie Ihre Client-ID und ihren geheimen Clientschlüssel zur Verwendung in Den Schritten 15 und 16, und wählen Sie dann OK aus.
  15. Erstellen Sie ein PowerShell-Skript, um die Benutzerzustimmung und ein Aktualisierungstoken zu erhalten.

Das Abrufen eines Zugriffstokens erfordert die Zustimmung des Benutzers, es sei denn, Sie verfügen über ein Aktualisierungstoken. Da Skripts jedoch keine Benutzeroberflächenkomponenten unterstützen, müssen Sie die Zustimmung auf andere Weise einholen. Diese PowerShell bietet eine Option zum Abrufen der Zustimmung und eines Aktualisierungstokens.

Öffnen Sie Editor oder Ihren bevorzugten Editor, und kopieren Sie das PowerShell-Skript in den Editor. Legen Sie $clientId und $clientSecret auf die Client-ID und den geheimen Schlüssel fest, die Sie bei der Registrierung Ihrer App erhalten haben (siehe Schritt 13).

$clientId = "your-client-id"
$clientSecret = "your-client-secret"

$scopes = "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/gmail.send"

Start-Process "https://accounts.google.com/o/oauth2/v2/auth?client_id=$clientId&scope=$([string]::Join("%20", $scopes))&access_type=offline&response_type=code&redirect_uri=urn:ietf:wg:oauth:2.0:oob"    
 
$code = Read-Host "Please enter the code"
   
$response = Invoke-WebRequest https://www.googleapis.com/oauth2/v4/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientid&client_secret=$clientSecret&redirect_uri=urn:ietf:wg:oauth:2.0:oob&code=$code&grant_type=authorization_code"
  
Write-Output "Refresh token: " ($response.Content | ConvertFrom-Json).refresh_token 

Speichern Sie die Datei, und benennen Sie sie GetTokens.ps1 (Sie können sie beliebig benennen, aber die Erweiterung muss .ps1 sein).

Öffnen Sie nun ein Konsolenfenster. Um ein Konsolenfenster unter Microsoft Windows zu öffnen, geben Sie den folgenden Windows Run-Befehl (<Windows-Schaltfläche>+r) ein:

cmd.exe

Navigieren Sie an der Eingabeaufforderung zu dem Ordner, in dem Sie GetTokens.ps1 gespeichert haben, und geben Sie den folgenden Befehl ein:

powershell.exe -File .\GetTokens.ps1

Wenn das PowerShell-Skript erfolgreich ausgeführt wird, wird eine Browsersitzung gestartet, in der Sie Ihre Google-Anmeldeinformationen eingeben. Nach der Zustimmung enthält die Webseite den Genehmigungscode (siehe Bitte kopieren Sie diesen Code...).

Kopieren Sie den Genehmigungscode, und geben Sie ihn an der Eingabeaufforderung im Konsolenfenster ein. Das PowerShell-Skript gibt dann ein Aktualisierungstoken zurück. Kopieren Sie das Aktualisierungstoken. Sie sollten das Aktualisierungstoken wie ein Kennwort behandeln. Wenn jemand es in den Besitz bekommt, hat er Zugriff auf Ihre Ressourcen.

  1. Legen Sie in Lösungen wie Discovering disappapped ads, die auf Google-Dienste zugreifen, die Felder , clientSecretund refreshToken des Anmeldeinformationsobjekts clientIdauf die Werte fest, die Sie in den Schritten 13 und 14 erhalten haben.