Autorisierungsfehler

Während des Autorisierungsvorgangs gibt Google OAuth möglicherweise einen Fehler zurück. In diesem Leitfaden erfahren Sie, wie Sie die häufigsten Fehler bei diesem Vorgang beheben.

Fehlerbehebung

Weitere Informationen zu Google OAuth finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.

Aktualisierungstoken läuft weiterhin ab

Aktualisierungstokens können nach 7 Tagen nicht mehr funktionieren, wenn die Client-ID nicht genehmigt wurde. Der 7-tägige Ablauf des Tokens steht nicht im Zusammenhang mit kommerziellen oder Sandbox-Genehmigungen. Die OAuth 2.0-Client-ID eines Dienst- oder Nutzerkontos muss genehmigt und in der Produktion bereitgestellt werden, um eine längere Tokenlebensdauer zu erhalten. Weitere Informationen finden Sie unter Ablauf des Aktualisierungstokens.

Zugriff verweigert

Wenn Sie Ihren OAuth-Zustimmungsbildschirm in Google Cloud eingerichtet haben und der Nutzertyp Extern ist, wird die Fehlermeldung „Zugriff verweigert“ angezeigt, wenn Sie versuchen, eine Kontoverknüpfung mit einem Google-Konto zu erstellen, das nicht als Testnutzer für Ihre Anwendung aufgeführt ist. Fügen Sie das Google-Konto auf Ihrem OAuth-Zustimmungsbildschirm im Abschnitt Testnutzer hinzu.

PCM-Fehler (Partner Connections Manager)

Informationen zu Fehlern beim Zugriff auf PCM finden Sie in der PCM-Fehlerreferenz (Partner Connections Manager).

Google hat diese App nicht überprüft

Die SDM API nutzt einen eingeschränkten Bereich. Das bedeutet, dass alle Anwendungen, die diesen Bereich während der Autorisierung nutzen, als nicht bestätigt gelten, bis die OAuth API-Überprüfung abgeschlossen ist. Bei der privaten Verwendung von Device Access ist keine OAuth API-Bestätigung erforderlich.

Während des Autorisierungsvorgangs wird möglicherweise der Bildschirm „Google hat diese Anwendung nicht überprüft“ angezeigt. Dieser wird angezeigt, wenn der Bereich sdm.service in Ihrem OAuth-Zustimmungsbildschirm in Google Cloud nicht konfiguriert ist. Sie können diesen Bildschirm umgehen, indem Sie auf die Option Advanced (Erweitert) und dann auf Go to Project Name (unsicher) klicken.

Weitere Informationen finden Sie unter Bildschirm für nicht überprüfte Anwendung.

Ungültiger Kunde

Wenn Sie versuchen, ein Zugriffs- oder Aktualisierungstoken abzurufen, erhalten Sie die Fehlermeldung „Ungültiger Client“, wenn Sie einen falschen OAuth 2.0-Clientschlüssel eingeben. Achten Sie darauf, dass der client_secret-Wert, den Sie in Aufrufen von Zugriffs- und Aktualisierungstokens verwenden, der Wert für die verwendete OAuth 2.0-Client-ID ist, die Sie auf der Seite Google Cloud-Anmeldedaten finden.

Ungültige Anfrage, erforderlicher Bereich fehlt

Nachdem Sie Berechtigungen in PCM gewährt haben, wird möglicherweise der Fehler „Ungültige Anfrage“ wie „Erforderlicher Parameter fehlt: Bereich“ angezeigt. Achten Sie darauf, dass der scope-Wert, den Sie in Autorisierungsaufrufen verwenden, mit dem Wert übereinstimmt, den Sie für den OAuth 2.0-Client auf der Seite Google Cloud-Anmeldedaten festgelegt haben.

Nicht übereinstimmende Weiterleitungs-URIs

Beim Durchführen der Autorisierung kann der Fehler "Weiterleitungs-URI-Abweichung" auftreten. Achten Sie darauf, dass der redirect_uri-Wert, den Sie in Autorisierungsaufrufen verwenden, mit dem Wert übereinstimmt, den Sie für den OAuth 2.0-Client auf der Seite Google Cloud-Anmeldedaten festgelegt haben.

Kurzübersicht

Mit dieser Referenz können Sie die Schritte zum Autorisieren einesuser und zum Verknüpfen seines Google-Kontos schnell implementieren.

Wenn Sie diese Kurzreferenz verwenden möchten, bearbeiten Sie in den Codebeispielen jede Platzhaltervariable mit den Werten für Ihre spezifische Integration. Kopieren Sie sie und fügen Sie sie nach Bedarf ein:

1 PCM

Leiten Sie user zum PCM-Link in der App weiter und ersetzen Sie Folgendes:

  1. project-id durch Ihre Device Access Project ID
  2. oauth2-client-id durch die OAuth2-Client-ID aus Ihren Google Cloud-Anmeldedaten
  3. redirect-uri durch einen Weiterleitungs-URI, der für die verwendete OAuth2-Client-ID angegeben wurde
  4. scope durch einen Ihrer verfügbaren Bereiche
https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=redirect-uri&access_type=offline&prompt=consent&client_id=oauth2-client-id&response_type=code&scope=https://www.googleapis.com/auth/scope

2 Authentifizierungscode

Nachdem Sie Berechtigungen über PCM für den ausgewählten Bereich gewährt haben, sollte user an den angegebenen Weiterleitungs-URI weitergeleitet werden. Der Autorisierungscode wird als code-Parameter in der URL zurückgegeben. Er sollte das folgende Format haben:

redirect-uri?code=authorization-code&scope=https://www.googleapis.com/auth/scope

3 Zugriffstokens

Verwenden Sie den Autorisierungscode, um ein Zugriffstoken abzurufen, mit dem Sie die SDM API im Namen des Nutzers aufrufen können.

Führen Sie einen POST-Aufruf an den OAuth-Endpunkt von Google aus und ersetzen Sie dabei Folgendes:

  1. oauth2-client-id und oauth2-client-secret durch die OAuth2-Client-ID und den Clientschlüssel aus Ihren Google Cloud-Anmeldedaten
  2. authorization-code durch den Code, den Sie im vorherigen Schritt erhalten haben
  3. redirect-uri durch einen Weiterleitungs-URI, der für die verwendete OAuth2-Client-ID angegeben wurde

Google OAuth gibt zwei Tokens zurück: ein Zugriffstoken und ein Aktualisierungstoken.

Anfragen

curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=redirect-uri'

Antwort

{
  "access_token": "access-token",
  "expires_in": 3599,
  "refresh_token": "refresh-token",
  "scope": "https://www.googleapis.com/auth/scope",
  "token_type": "Bearer"
}

4 API-Aufruf

Die Autorisierung ist erst abgeschlossen, wenn Sie einen API-Aufruf mit dem Zugriffstoken von userausführen. Dieser erste Aufruf beendet den Autorisierungsprozess und aktiviert Ereignisse.

Sie müssen einen der für den angegebenen Bereich aufgeführten API-Aufrufe verwenden, um die Autorisierung abzuschließen.

sdm.service

Geräte

Weitere Informationen finden Sie in der API-Referenz zu devices.list.

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

5 Aktualisierungstoken

Zugriffstokens für die SDM API sind nur eine Stunde lang gültig, wie im expires_in-Parameter angegeben, der von Google OAuth zurückgegeben wird. Falls das Zugriffstoken abläuft, können Sie mit dem Aktualisierungstoken ein neues anfordern.

Führen Sie einen POST-Aufruf an den OAuth-Endpunkt von Google aus und ersetzen Sie dabei Folgendes:

  1. oauth2-client-id und oauth2-client-secret durch die OAuth2-Client-ID und den Clientschlüssel aus Ihren Google Cloud-Anmeldedaten
  2. refresh-token durch den Code, den Sie beim ersten Abrufen des Zugriffstokens erhalten haben.

Google OAuth gibt ein neues Zugriffstoken zurück.

Anfragen

curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token'

Antwort

{
  "access_token": "new-access-token",
  "expires_in": 3599,
  "scope": "https://www.googleapis.com/auth/scope",
  "token_type": "Bearer"
}