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:
- project-id durch Ihre Device Access Project ID
- oauth2-client-id durch die OAuth2-Client-ID aus Ihren Google Cloud Anmeldedaten
- redirect-uri durch einen Weiterleitungs-URI, der für die verwendete OAuth2-Client-ID angegeben wurde
- 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:
- oauth2-client-id und oauth2-client-secret durch die OAuth2-Client-ID und den Clientschlüssel aus Ihren Google Cloud Anmeldedaten
- authorization-code durch den Code, den Sie im vorherigen Schritt erhalten haben
- 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:
- oauth2-client-id und oauth2-client-secret durch die OAuth2-Client-ID und den Clientschlüssel aus Ihren Google Cloud Anmeldedaten
- 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"
}