Developers können die SDM API verwenden, um Google Nest-Geräte im Namen von users aufzurufen und zu verwalten. Die SDM API prüft, ob user die Geräte verwaltet, die abgerufen werden, ob user der Nutzer zugestimmt hat, dassdeveloper die Merkmale der einzelnen Geräte gelesen oder geschrieben werden, und obdeveloper der Nutzer für den Zugriff auf die einzelnen Merkmale auf die Zulassungsliste gesetzt wurde.
Damit die SDM API für die Geräteverwaltung verwendet werden kann, muss diedeveloper zuerst vom userautorisiert werden.
Eine detaillierte Anleitung zum Autorisierungsprozess finden Sie auf der Seite Konto autorisieren der Device Access Kurzanleitung.
Informationen zur Fehlerbehebung bei Autorisierungsfehlern finden Sie unter Autorisierungsfehler.
OAuth-Ablauf
Die SDM API verwendet für dieuser Autorisierung einen dreibeinigen Google OAuth-Vorgang:
- Wenn a user a developer zur Verwaltung von Nest-Geräten autorisieren möchte, sendet developer user an PCM, wo sich userin seinem Google-Konto anmeldet.
- Mit user werden die Berechtigungen ausgewählt, die für developerin PCM gewährt werden sollen.
- Der user gibt über OAuth seine Einwilligung und gewährt demdeveloper einen Autorisierungscode.
- Der developer verwendet den Autorisierungscode, um ein Zugriffstoken abzurufen.
- Die developer verwendet das Zugriffstoken mit Aufrufen der SDM API für die Geräteverwaltung.
Weitere Informationen zu Google OAuth und zur Einrichtung finden Sie im Hilfeartikel Mit OAuth 2.0 auf Google APIs zugreifen.
Partner Connections Manager (PCM)
PCM wird von der SDM API bereitgestellt. In dieser Ansicht werden alle Gebäude, Geräte und Zugriffsoptionen aufgeführt, die deruser dem developergewähren kann. Der userwählt während des Autorisierungsvorgangs aus, auf was Zugriff gewährt werden soll, und behält die Kontrolle über diesen Zugriff.
Die in PCM ausgewählten Optionen werden Trait-Gruppen zugeordnet, also Sammlungen von Merkmalen, auf die developer Zugriff gewährt wird. Einige Merkmalsgruppen sind miteinander verknüpft, je nachdem, welche Art von Integration diedeveloper der useranbietet. Die usermuss Berechtigungen für diese verknüpften Merkmalsgruppen erteilen, um diese Integration zu ermöglichen. Andernfalls kann der Nutzer nach Bedarf Berechtigungen für einzelne, nicht verknüpfte Merkmalsgruppen gewähren.
PCM aktivieren
Wenn du die PCM-Ansicht für eine useraktivieren möchtest, ersetze den standardmäßigen OAuth 2.0-Endpunkt der Google API durch diesen neuen OAuth-Endpunkt für die Autorisierungsanfrage:
https://nestservices.google.com/partnerconnections/project-id /auth
Verwenden Sie in der URL die folgenden Parameter:
Parameter | Beschreibung |
---|---|
redirect_uri |
Der URI, an den user nach erfolgreicher Autorisierung weitergeleitet wird. |
client_id |
Die OAuth 2.0-Client-ID aus Ihrem Google Cloud-Projekt. Diese muss mit der ID übereinstimmen, die mit deiner Project verknüpft ist. Eine OAuth-Client-ID muss gültig und für eine projecteindeutig sein. Sie kann nicht für andere projects verwendet werden. |
access_type |
Zu verwendender Wert: offline |
prompt |
Zu verwendender Wert: consent |
response_type |
Zu verwendender Wert: code Es wird ein Autorisierungscode erwartet. |
scope |
Zu verwendender Wert: https://www.googleapis.com/auth/sdm.service
Der Umfang der SDM API. |
state |
Optional. Ein undurchsichtiger Wert, der vom developer Client verwendet wird, um den Status zwischen Anfrage und Rückruf aufrechtzuerhalten. |
Beispiel-PCM-URL:
https://nestservices.google.com/partnerconnections/
2f6989ca-c756-4625-8cdc-d5b1edfb2dcd/auth?
redirect_uri=https://www.example.com/api/link/M258KP8OWYZDVQ&
client_id=418235700063-sdkiav89orn5r1nvrcr5t210qqjimq8l.apps.googleusercontent.com&
access_type=offline&
prompt=consent&
response_type=code&
scope=https://www.googleapis.com/auth/sdm.service
Nachdem die user die Berechtigung erteilt hat, wird ein Autorisierungscode als code
-Parameter in der Weiterleitungs-URI zurückgegeben. Mit diesem Code kannst du ein Zugriffstoken abrufen.
PCM zu Ihrer App hinzufügen
Fügen Sie in Ihrer App die PCM-Ansicht mit dieser URL hinzu:
https://nestservices.google.com/partnerconnections
Wenn die user angemeldet ist, werden auf dieser Seite alle verknüpftenDevice Access developers sowie eine Liste aller Gebäude und Geräte mit Ein-/Aus-Schaltflächen zum Gewähren und Widerrufen von Berechtigungen angezeigt. Auf dieser Seite können Sie auch die Verknüpfung mit einem Partner aufheben. user
Ungeprüfte Apps
Für die SDM API wird ein eingeschränkter Bereich verwendet. Das bedeutet, dass alle Apps, die diesen Bereich bei der Autorisierung verwenden, als „nicht bestätigt“ eingestuft werden, es sei denn, die OAuth API-Bestätigung wurde abgeschlossen. Wenn du Device Access für den privaten Gebrauch verwendest, ist die OAuth API-Bestätigung nicht erforderlich.
Während des Autorisierungsvorgangs wird möglicherweise der Bildschirm „Diese App wurde von Google nicht überprüft“ angezeigt. Das ist der Fall, wenn der Bereich sdm.service
nicht auf dem 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) klicken.
Weitere Informationen finden Sie unter Bildschirm für nicht bestätigte Apps.
Zugriffstokens
Alle Aufrufe der SDM API zum Verwalten autorisierter Gebäude und Geräte müssen das eindeutige Zugriffstoken verwenden, das der developer vomuser während der Autorisierung gewährt wurde. Zugriffstokens sind kurzlebig und müssen regelmäßig aktualisiert werden, damit der Zugriff nicht unterbrochen wird.
Wenn a user später den Zugriff auf ein Gebäude oder ein Gerät developer widerruft, läuft das Zugriffstoken sofort ab und kann nicht aktualisiert werden.developer kann dann nicht mehr im Namen dieses userauf die SDM API zugreifen.
Kontoautorisierung widerrufen
Es gibt mehrere Möglichkeiten, die Autorisierung eines Google-Kontos aufzuheben. Wir empfehlen, die Kontoberechtigungen über den Partner Connections Manager (PCM) zu ändern. Weitere Informationen finden Sie unter Kontoberechtigungen ändern. Ein Zugriffstoken kann auch mithilfe der folgenden Methoden widerrufen werden:
Der Nutzer kann die Einwilligung unter https://myaccount.google.com/permissions widerrufen.
Der Entwickler kann das Zugriffstoken an den Endpunkt übergeben
https://oauth2.googleapis.com/revoke
. Weitere Informationen zu Google OAuth und zum Widerrufen von Tokens finden Sie unter Token widerrufen.
Eingebettete Webviews
Eine neue Richtlinie für sichere Browser verbietet Google OAuth-Anfragen in eingebetteten Browserbibliotheken, die allgemein als eingebettete WebViews bezeichnet werden. Alle eingebetteten Webviews werden blockiert. Eingebettete WebView-Bibliotheken sind problematisch, da böswillige Entwickler die Kommunikation zwischen Google und seinen Nutzern abfangen und ändern können. Eingebettete WebViews wirken sich nicht nur auf die Kontosicherheit aus, sondern können auch die Nutzerfreundlichkeit Ihrer App beeinträchtigen.
Wenn Sie von dieser Richtlinie betroffen sind, lesen Sie den Supportartikel Anstehende Sicherheitsänderungen am OAuth 2.0-Autorisierungsendpunkt von Google in eingebetteten WebViews.