Developerkönnen die SDM API verwenden, um Google Nest-Geräte im Namen von useraufzurufen und zu verwalten. Die SDM API prüft, ob die user die Geräte verwaltet, auf die zugegriffen wird, ob die user derdeveloper zum Lesen oder Schreiben der Merkmale jedes Geräts zugestimmt hat und ob diedeveloper für den Zugriff auf jedes Merkmal auf der Zulassungsliste steht.
Damit die SDM API für die Geräteverwaltung verwendet werden kann, muss diedeveloper zuerst von der userautorisiert werden.
Eine Anleitung zum Autorisierungsprozess finden Sie im Device Access -Schnellstartleitfaden auf der Seite Konto autorisieren.
Hilfe zur Fehlerbehebung bei Autorisierungsfehlern finden Sie unter Autorisierungsfehler.
OAuth-Ablauf
Die SDM API verwendet einen dreibeinigen Google OAuth-Ablauf für dieuser Autorisierung:
- Wenn a user a developer zur Verwaltung von Nest-Geräten autorisieren möchte, sendet developer dieuser an PCM, wo sich userin seinem Google-Konto anmeldet.
- Mit dem user werden Berechtigungen für das developerin PCM ausgewählt.
- Der user erteilt die Einwilligung über OAuth und gewährt demdeveloper einen Autorisierungscode.
- Der developer verwendet den Autorisierungscode, um ein Zugriffstoken abzurufen.
- Die developer verwendet das Zugriffstoken für Aufrufe der SDM API zur Geräteverwaltung.
Weitere Informationen zu Google OAuth und zur Einrichtung finden Sie unter 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 user wählt aus, worauf während der Autorisierung zugegriffen werden soll, und behält die Kontrolle über diesen Zugriff.
Die in PCM ausgewählten Optionen entsprechen Attributgruppen, die Sammlungen von Attributen sind, auf die developer Zugriff erhält. Einige Attributgruppen sind miteinander verknüpft. Das hängt davon ab, welche Art von Integration diedeveloper für die useranbietet. Die usermuss Berechtigungen für diese verknüpften Attributgruppen erteilen, um die Integration zu ermöglichen. Andernfalls kann der Nutzer Berechtigungen für einzelne, nicht verknüpfte Attributgruppen nach Bedarf erteilen.
PCM aktivieren
Wenn Sie die PCM-Ansicht für ein useraktivieren möchten, ersetzen Sie den standardmäßigen Google API OAuth 2.0-Endpunkt durch diesen neuen OAuth-Endpunkt für die Autorisierungsanfrage:
https://nestservices.google.com/partnerconnections/project-id/authVerwenden Sie diese Parameter in der URL:
| Parameter | Beschreibung |
|---|---|
redirect_uri |
Die URI, an die der user nach erfolgreicher Autorisierung weitergeleitet wird. |
client_id |
Die OAuth 2.0-Client-ID aus Ihrem Google Cloud-Projekt. Achten Sie darauf, dass es sich um dieselbe E-Mail-Adresse handelt, die mit Ihrer Project -ID verknüpft ist. Eine OAuth-Client-ID muss gültig und eindeutig für ein projectsein und darf nicht für andere projectfreigegeben werden. |
access_type |
Zu verwendender Wert: offline |
prompt |
Zu verwendender Wert: consent |
response_type |
Zu verwendender Wert: codeEs wird ein Autorisierungscode erwartet. |
scope |
Zu verwendender Wert: https://www.googleapis.com/auth/sdm.service
Der SDM API-Bereich. |
state |
Optional. Ein opaker Wert, der vom developer -Client verwendet wird, um den Status zwischen der Anfrage und dem Callback beizubehalten. |
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.serviceNachdem der Nutzer die Berechtigung erteilt hat, wird ein Autorisierungscode als Parameter code im Weiterleitungs-URI zurückgegeben. user Mit diesem Code können Sie ein Zugriffstoken abrufen.
PCM in Ihre App einbinden
Fügen Sie in Ihrer App die PCM-Ansicht mit dieser URL hinzu:
https://nestservices.google.com/partnerconnectionsWenn der user angemeldet ist, werden auf dieser Seite alle verknüpftenDevice Access developers sowie eine Liste aller Strukturen und Geräte mit Ein/Aus-Schaltern zum Erteilen und Widerrufen von Berechtigungen angezeigt. Der user kann die Verbindung zu einem Partner auf dieser Seite auch für jeden Partner einzeln trennen.
Nicht bestätigte Apps
Für die SDM API wird ein eingeschränkter Bereich verwendet. Das bedeutet, dass alle Apps, die diesen Bereich während der Autorisierung verwenden, als „nicht verifiziert“ gekennzeichnet werden, sofern die OAuth API-Überprüfung nicht abgeschlossen ist. Wenn Sie Device Access für den privaten Gebrauch verwenden, ist keine OAuth-API-Überprüfung erforderlich.
Während des Autorisierungsprozesses wird möglicherweise der Bildschirm „Google hat diese App nicht überprüft“ angezeigt. Das passiert, wenn der Bereich sdm.service nicht auf Ihrem OAuth-Zustimmungsbildschirm in Google Cloud konfiguriert ist. Dieser Bildschirm kann umgangen werden, indem Sie auf die Option Erweitert und dann auf Weiter zu Projektname (unsicher) klicken.
Zugriffstokens
Für alle Aufrufe der SDM API zum Verwalten autorisierter Strukturen und Geräte muss das eindeutige Zugriffstoken verwendet werden, das dem developer von deruser während der Autorisierung gewährt wurde. Zugriffstokens sind kurzlebig und müssen regelmäßig aktualisiert werden, um den Zugriff aufrechtzuerhalten.
Wenn a user später den Zugriff auf eine Struktur oder ein Gerät widerruft, läuft das Zugriffstoken sofort ab und kann nicht aktualisiert werden. Diedeveloper kann dann nicht mehr im Namen von userdie SDM API aufrufen. developer
Kontoautorisierung widerrufen
Es gibt mehrere Möglichkeiten, die Autorisierung eines Google-Kontos aufzuheben. Die bevorzugte Methode ist, dass der Nutzer den Partner Connections Manager (PCM) verwendet, um die Kontoberechtigungen zu ändern. Weitere Informationen finden Sie unter Kontoberechtigungen ändern. Ein Zugriffstoken kann auch mit den folgenden Methoden widerrufen werden:
Der Nutzer kann die Berechtigungen unter https://myaccount.google.com/permissions widerrufen.
Der Entwickler kann das Zugriffstoken an den Endpunkt
https://oauth2.googleapis.com/revokeübergeben. Weitere Informationen zu Google OAuth und zum Widerruf von Tokens finden Sie unter Token widerrufen.
Eingebettete Webviews
Eine neue Richtlinie für sichere Browser verbietet Google-OAuth-Anfragen in eingebetteten Browserbibliotheken, die häufig als eingebettete WebViews bezeichnet werden. Alle eingebetteten Webviews werden blockiert. Eingebettete WebView-Bibliotheken sind problematisch, da sie es einem böswilligen Entwickler ermöglichen, die Kommunikation zwischen Google und seinen Nutzern abzufangen und zu ändern. Eingebettete WebViews wirken sich nicht nur auf die Kontosicherheit, sondern auch auf die Nutzerfreundlichkeit Ihrer Anwendung aus.
Wenn Sie von dieser Richtlinie betroffen sind, lesen Sie den Supportartikel Bevorstehende Sicherheitsänderungen am Google-Autorisierungsendpunkt für OAuth 2.0 in eingebetteten WebViews.