Developermogą używać interfejsu SDM API do wyświetlania urządzeń Google Nest i zarządzania nimi w imieniu user. Interfejs API SDM sprawdza, czy user zarządza dostępem do urządzeń, user czy wyraził zgodę nadeveloper odczytywanie i zapisywanie cech każdego urządzenia oraz czy aplikacjadeveloper została dodana do białej listy dostępu do poszczególnych cech.
Aby móc używać interfejsu SDM API do zarządzania urządzeniami,developer musisz najpierw autoryzować je przez user.
Omówienie procesu autoryzacji znajdziesz na stronie Autoryzacja konta w Device Access krótkim przewodniku.
Pomoc dotyczącą rozwiązywania problemów z autoryzacją znajdziesz w artykule Błędy autoryzacji.
Przepływ OAuth
Interfejs SDM API używa trzyetapowej procedury Google OAuth do autoryzacji:user
- Gdy a user chce upoważnić Cię do zarządzania a developer urządzeniami Nest, developer wysyłauser do PCM, gdzie userloguje się na swoje konto Google.
- user zaznacza uprawnienia, które mają zostać przyznane developerw PCM.
- user Wyraża zgodę za pomocą protokołu OAuth i przyznajedeveloper kod autoryzacji.
- developer do pobierania tokena dostępu wykorzystuje kod autoryzacji.
- developer używa tokena dostępu z wywołaniami interfejsu API SDM do zarządzania urządzeniami.
Więcej informacji o Google OAuth i sposobie jego konfiguracji znajdziesz w artykule Korzystanie z OAuth 2.0 do korzystania z interfejsów API Google.
Menedżer połączeń z partnerami (PCM)
PCM jest dostarczane przez interfejs SDM API. Jest to widok zawierający wszystkie struktury, urządzenia i opcje dostępu, któreuser może przyznawać developer. userWybiera, co przyznać dostęp w trakcie procesu autoryzacji, i zachowuje kontrolę nad tym dostępem.
Opcje wybrane w PCM są mapowane na grupy cech, które są zbiorami cech, do których developer ma dostęp. Niektóre grupy cech są powiązane ze sobą w zależności od typu integracji, którądeveloper oferuje user, a useraby umożliwić integrację, muszą przyznać uprawnienia tym połączonym grupom cech. W innym przypadku użytkownik może przyznawać uprawnienia poszczególnym niepowiązanym grupom cech.
Włącz PCM
Aby włączyć widok PCM w przypadku user, zastąp standardowy punkt końcowy OAuth 2.0 interfejsu Google API w żądaniu autoryzacji:
https://nestservices.google.com/partnerconnections/project-id/auth
Użyj w adresie URL tych parametrów:
Parametr | Opis |
---|---|
redirect_uri |
Identyfikator URI, który będzie kierować user po udanej autoryzacji. |
client_id |
Identyfikator klienta OAuth 2.0 z Twojego projektu Google Cloud. Upewnij się, że jest to identyfikator powiązany z Twoim Project identyfikatorem. Pamiętaj, że identyfikator klienta OAuth musi być prawidłowy i unikalny dla elementu projecti nie może być udostępniany innym project. |
access_type |
Wartość do wykorzystania: offline |
prompt |
Wartość do wykorzystania: consent |
response_type |
Wartość do wykorzystania: code oczekiwany kod autoryzacji. |
scope |
Wartość do użycia: https://www.googleapis.com/auth/sdm.service
Zakres interfejsu SDM API. |
state |
Opcjonalnie. Nieprzezroczysta wartość używana przez klienta developer do utrzymywania stanu żądania i wywołania zwrotnego. |
linking_token |
Token połączenia uzyskany za pomocą polecenia GetToken. |
Przykładowy URL PCM:
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
Po user udzieleniu uprawnienia zwracany jest kod autoryzacji jako parametr code
w identyfikatorze URI przekierowania. Aby uzyskać token dostępu, użyj tego kodu.
Dodaj PCM do swojej aplikacji
W aplikacji dodaj widok PCM za pomocą tego adresu URL:
https://nestservices.google.com/partnerconnections
Gdy użytkownik jest zalogowany user na tej stronie, są widoczne wszystkie powiązane z nim obiektyDevice Access developeroraz lista wszystkich struktur i urządzeń z przełącznikami umożliwiającymi przyznawanie i unieważnianie uprawnień. Na tej stronie user można również odłączyć połączenie partnerskie dla poszczególnych partnerów.
Niezweryfikowane aplikacje
Interfejs SDM API używa zakresu z ograniczeniami, co oznacza, że aplikacje korzystające z tego zakresu podczas autoryzacji będą miały stan „niezweryfikowany” (chyba że ukończono weryfikację interfejsu API OAuth). Podczas korzystania Device Access z osobistych zastosowań weryfikacja OAuth API nie jest wymagana.
Podczas autoryzacji może wystąpić ekran „Google nie zweryfikował tej aplikacji”, jeśli zakres sdm.service
nie został skonfigurowany na ekranie zgody OAuth w Google Cloud. Aby pominąć ten ekran, kliknij opcję Zaawansowane, a następnie Otwórz nazwę projektu (niebezpieczne).
Więcej informacji znajdziesz na stronie Niezweryfikowany ekran aplikacji.
Tokeny dostępu
Wszystkie wywołania interfejsu SDM API do zarządzania autoryzowanymi strukturami i urządzeniami muszą korzystać z unikalnego tokena dostępu przyznanego developer w ramachuser autoryzacji. Tokeny dostępu są ważne tylko przez krótki czas i muszą być regularnie odświeżane, aby zapewnić dalszy dostęp.
Jeśli a user później unieważnisz developer dostęp do struktury lub urządzenia, token dostępu natychmiast utraci ważność i nie będzie można go odświeżyć, adeveloper nie będzie już mógł wywoływać interfejsu SDM API w jego imieniu user.
Cofnij autoryzację konta
Autoryzowanie konta Google można cofnąć na kilka sposobów. Zaleca się, aby użytkownik używał Menedżera połączeń partnera (PCM) do modyfikowania uprawnień dotyczących konta. Więcej informacji znajdziesz w sekcji Modyfikowanie uprawnień konta. Token dostępu możesz też unieważnić w ten sposób:
Użytkownik może go anulować na stronie https://myaccount.google.com/permissions.
Deweloper może przekazać token dostępu do punktu końcowego
https://oauth2.googleapis.com/revoke
. Więcej informacji o Google OAuth i unieważnianiu tokenów znajdziesz w artykule o anulowaniu tokenów.
Umieszczone komponenty WebView
Nowe zasady dotyczące bezpiecznych przeglądarek uniemożliwiają wyświetlanie żądań Google OAuth w bibliotekach osadzonych przeglądarek, które często są nazywane osadzonymi komponentami WebView. Wszystkie umieszczone komponenty WebView będą blokowane. Umieszczone biblioteki WebView stwarzają problemy, ponieważ umożliwiają umyślnemu deweloperowi przechwytywanie i zmienianie komunikacji między Google a użytkownikami. Umieszczone komponenty WebView nie tylko wpływają na bezpieczeństwo konta, ale także na użyteczność aplikacji.
Jeśli te zasady Cię dotyczą, zapoznaj się z artykułem Nadchodzące zmiany w zabezpieczeniach punktu końcowego autoryzacji Google OAuth 2.0 w osadzonych komponentach WebView.