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. Klicken Sie auf APIs autorisieren.
  4. Klicken Sie nach der Autorisierung der APIs auf Exchange-Autorisierungscode für Token.
  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 zum API-Dashboard der Google-Entwicklerkonsole.
  2. Klicken Sie auf Projekt erstellen , um ein neues Projekt zu erstellen oder ein vorhandenes Projekt auszuwählen.
    1. Wenn Sie ein neues Projekt erstellen, geben Sie den Namen Ihres Projekts in Projektname ein. Beispiel: Skripts.
    2. Klicken Sie auf Erstellen.
  3. Klicken Sie im Dashboard auf APIS UND DIENSTE AKTIVIEREN.
  4. Geben Sie im Suchfeld Blätter ein, und klicken Sie auf Google Sheets-API. Klicken Sie dann auf AKTIVIEREN.
  5. Wechseln Sie zurück zum Dashboard (klicken Sie auf APIs & Services), und wiederholen Sie die Schritte 3 und 4 für die Google Drive-API.
  6. Wechseln Sie zurück zum Dashboard (klicken Sie auf APIs & Services), und wiederholen Sie die Schritte 3 und 4 für die Gmail-API.
  7. Klicken Sie im Dashboard im linken Navigationsbereich auf Anmeldeinformationen , und klicken Sie dann auf ZUSTIMMUNGSBILDSCHIRM KONFIGURIEREN. Wenn Sie aufgefordert werden, einen Benutzertyp auszuwählen, wählen Sie Extern aus, und klicken Sie dann auf Erstellen.
  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. Klicken Sie dann auf SPEICHERN UND FORTFAHREN.
  9. Klicken Sie auf HINZUFÜGEN ODER ENTFERNEN BEREICHE, und wählen Sie .. /auth/drive und .. /auth/gmail.send, und klicken Sie dann auf Aktualisieren.
  10. Klicken Sie auf SPEICHERN UND FORTFAHREN.
  11. Klicken Sie auf BENUTZER HINZUFÜGEN, geben Sie Ihre Google-E-Mail-Adresse ein, und klicken Sie auf HINZUFÜGEN.
  12. Klicken Sie im Dashboard im linken Navigationsbereich auf Anmeldeinformationen, klicken Sie dann auf Anmeldeinformationen erstellen, und wählen Sie 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. Klicken Sie abschließend auf Erstellen.
  14. Kopieren Sie Die Client-ID und den geheimen Clientschlüssel zur Verwendung in den Schritten 18, 19 und 24, und klicken Sie dann auf OK.
  15. Zum Google OAuth-Playground wechseln
  16. Klicken Sie auf das OAuth 2.0-Konfigurationssymbol (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. Klicken Sie auf APIs autorisieren , und befolgen Sie die 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, klicken Sie auf Erweitert und dann zu [App-Name] wechseln (unsicher). 22. Nachdem die APIs autorisiert wurden, klicken Sie auf Exchange-Autorisierungscode für Token 23. Kopieren Sie das Token aus Aktualisierungstoken, um es in Schritt 24 24 zu verwenden. 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 zum API-Dashboard der Google-Entwicklerkonsole.
  2. Klicken Sie auf Projekt erstellen , um ein neues Projekt zu erstellen oder ein vorhandenes Projekt auszuwählen.
    1. Wenn Sie ein neues Projekt erstellen, geben Sie den Namen Ihres Projekts in Projektname ein. Beispiel: Skripts.
    2. Klicken Sie auf Erstellen.
  3. Klicken Sie im Dashboard auf APIS UND DIENSTE AKTIVIEREN.
  4. Geben Sie im Suchfeld Blätter ein, und klicken Sie auf Google Sheets-API. Klicken Sie dann auf AKTIVIEREN.
  5. Wechseln Sie zurück zum Dashboard (klicken Sie auf APIs & Services), und wiederholen Sie die Schritte 3 und 4 für die Google Drive-API.
  6. Wechseln Sie zurück zum Dashboard (klicken Sie auf APIs & Services), und wiederholen Sie die Schritte 3 und 4 für die Gmail-API.
  7. Klicken Sie im Dashboard im linken Navigationsbereich auf Anmeldeinformationen , und klicken Sie dann auf ZUSTIMMUNGSBILDSCHIRM KONFIGURIEREN. Wenn Sie aufgefordert werden, einen Benutzertyp auszuwählen, wählen Sie Extern aus, und klicken Sie dann auf Erstellen.
  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. Klicken Sie dann auf SPEICHERN UND FORTFAHREN.
  9. Klicken Sie auf HINZUFÜGEN ODER ENTFERNEN BEREICHE, und wählen Sie .. /auth/drive und .. /auth/gmail.send, und klicken Sie dann auf Aktualisieren.
  10. Klicken Sie auf SPEICHERN UND FORTFAHREN.
  11. Klicken Sie auf BENUTZER HINZUFÜGEN, geben Sie Ihre Google-E-Mail-Adresse ein, und klicken Sie auf HINZUFÜGEN.
  12. Klicken Sie im Dashboard im linken Navigationsbereich auf Anmeldeinformationen, klicken Sie dann auf Anmeldeinformationen erstellen, und wählen Sie Oauth-Client-ID aus.
  13. Wählen Sie Desktop-App-Anwendungstyp aus, geben Sie einen Namen ein (z. B. Skriptclient-Creds), und klicken Sie auf Erstellen.
  14. Kopieren Sie Die Client-ID und den geheimen Clientschlüssel zur Verwendung in Den Schritten 15 und 16, und klicken Sie dann auf OK.
  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.