Autorisierungsfehler

Während des Autorisierungsprozesses kann Google OAuth einen Fehler zurückgeben. In diesem Leitfaden finden Sie Informationen zur Fehlerbehebung bei den häufigsten Fehlern, die während dieses Prozesses auftreten.

Fehlerbehebung

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

Aktualisierungstoken läuft immer wieder ab

Aktualisierungstoken funktionieren möglicherweise nach 7 Tagen nicht mehr, wenn die Client-ID nicht genehmigt wurde. Der Ablauf des Tokens nach 7 Tagen hat nichts mit Genehmigungen für kommerzielle Zwecke oder Sandbox-Genehmigungen zu tun. Für ein Dienst- oder Nutzerkonto muss die OAuth 2.0-Client-ID genehmigt und in die Produktion überführt werden, um eine längere Lebensdauer des Tokens zu erhalten. Weitere Informationen finden Sie unter Ablauf des Aktualisierungstokens.

Zugriff verweigert

Wenn Sie den OAuth-Zustimmungsbildschirm in Google Cloud eingerichtet haben und der Nutzertyp auf Extern festgelegt ist, wird der Fehler „Zugriff verweigert“ angezeigt, wenn Sie versuchen, eine Kontoverknüpfung mit einem Google-Konto herzustellen, das nicht als Testnutzer für Ihre App aufgeführt ist. Fügen Sie das Google-Konto im Bereich Testnutzer im OAuth-Zustimmungsbildschirm hinzu.

Fehler im Partnerverbindungen-Manager (Partner Connections Manager, PCM)

Informationen zur Behebung von Fehlern beim Zugriff auf den PCM finden Sie unter Referenz zu Fehlern im Partnerverbindungen-Manager (Partner Connections Manager, PCM).

Diese App wurde von Google nicht verifiziert

Die SDM API verwendet einen eingeschränkten Bereich. Das bedeutet, dass alle Apps, die diesen Bereich während der Autorisierung verwenden, als "nicht verifiziert" gekennzeichnet werden, es sei denn, die OAuth API-Überprüfung wurde abgeschlossen. Bei der Verwendung Device Access für den privaten Gebrauch ist die OAuth API-Überprüfung nicht erforderlich.

Während des Autorisierungsprozesses wird möglicherweise der Bildschirm „Diese App wurde von Google nicht verifiziert“ angezeigt. Das passiert, wenn der Bereich sdm.service nicht auf Ihrem OAuth-Zustimmungsbildschirm in Google Cloud konfiguriert ist. Sie können diesen Bildschirm umgehen, indem Sie auf die Option Erweitert und dann auf Zu Projektname (unsicher) wechseln klicken.

Weitere Informationen finden Sie unter Bildschirm „Nicht verifizierte App“.

Ungültiger Client

Wenn Sie versuchen, ein Zugriffs- oder Aktualisierungstoken abzurufen, wird der Fehler „Ungültiger Client“ angezeigt, wenn Sie einen falschen OAuth 2.0-Clientschlüssel angeben. Achten Sie darauf, dass der client_secret Wert, den Sie in den Aufrufen für Zugriffs- und Aktualisierungstoken verwenden, der Wert für die OAuth 2.0-Client-ID ist, die verwendet wird. Sie finden ihn auf der Google Cloud Anmeldedaten Seite.

Ungültige Anfrage, erforderlicher Bereich fehlt

Nachdem Sie Berechtigungen im PCM erteilt haben, kann der Fehler „Ungültige Anfrage“ mit der Meldung „Erforderlicher Parameter fehlt: Bereich“ auftreten. Achten Sie darauf, dass der scope Wert, den Sie in den Autorisierungsaufrufen verwenden, mit dem Wert übereinstimmt, den Sie für den OAuth 2.0-Client festgelegt haben. Sie finden ihn auf der Seite „Google Cloud Anmeldedaten“.

Nicht übereinstimmender Weiterleitungs-URI

Während der Autorisierung kann der Fehler „Nicht übereinstimmender Weiterleitungs-URI“ auftreten. Achten Sie darauf, dass der Wert redirect_uri, den Sie in den Autorisierungsaufrufen verwenden, mit dem Wert übereinstimmt, den Sie für den OAuth 2.0-Client festgelegt haben. Sie finden ihn auf der Seite „Google Cloud Anmeldedaten“ in Google Cloud.

Kurzreferenz

In dieser Referenz finden Sie eine Kurzanleitung zur Autorisierung von user und zur Verknüpfung des Google-Kontos mit .

Wenn Sie diese Kurzanleitung verwenden möchten, ersetzen Sie jede Platzhaltervariable in den Codebeispielen durch die Werte für Ihre spezifische Integration und kopieren Sie sie nach Bedarf:

1 PCM

Leiten Sie den user zum PCM-Link in Ihrer App weiter und ersetzen Sie dabei:

  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 Autorisierungscode

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

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

3 Zugriffstoken

Verwenden Sie den Autorisierungscode, um ein Zugriffstoken abzurufen, das Sie verwenden können, um die SDM API im Namen des Nutzers aufzurufen.

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

  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.

Anfrage

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 user's Zugriffstoken ausführen. Mit diesem ersten Aufruf wird der Autorisierungsprozess abgeschlossen und Ereignisse werden aktiviert.

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

sdm.service

Geräte

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

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

5 Aktualisierungstoken

Zugriffstoken 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. Wenn Ihr Zugriffstoken abläuft, verwenden Sie das Aktualisierungstoken, um ein neues zu erhalten.

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

  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 Zugriffs tokens erhalten haben

Google OAuth gibt ein neues Zugriffstoken zurück.

Anfrage

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"
}