Developermogą używać interfejsu SDM API do wyświetlania urządzeń Google Nest i zarządzania nimi w imieniu user. Interfejs SDM API sprawdza, czy user zarządza urządzeniami, do których uzyskuje się dostęp, czy user wyraził zgodę na odczyt lub zapisywanie cech poszczególnych urządzeń oraz czydeveloper znajduje się na białej liście dostępu do każdej cechy.developer
Aby używać interfejsu SDM API do zarządzania urządzeniami, interfejsdeveloper musi najpierw zostać autoryzowany przez user.
Proces autoryzacji omówiono na stronie Autoryzowanie konta w Device Access przewodniku Szybki start.
Aby uzyskać pomoc dotyczącą rozwiązywania problemów z błędami autoryzacji, zapoznaj się z artykułem Błędy autoryzacji.
Proces OAuth
Interfejs SDM API używa trzyetapowego procesu autoryzacji OAuth Google:user
- Gdy a user chce autoryzować a developer do zarządzania urządzeniami Nest, wysyłauser do PCM, gdzie userloguje się na swoje konto Google. developer
- user wybiera uprawnienia do przyznania developerw PCM.
- user wyraża zgodę za pomocą OAuth, przyznającdeveloper kod autoryzacji.
- developer używa kodu autoryzacji do pobierania tokena dostępu.
- developer używa tokena dostępu w wywołaniach interfejsu SDM API do zarządzania urządzeniami.
Więcej informacji o protokole OAuth Google i o jego konfigurowaniu znajdziesz w artykule Używanie protokołu OAuth 2.0 do uzyskiwania dostępu do interfejsów API Google.
Menedżer połączeń z usługą partnerską (PCM)
PCM jest udostępniany przez interfejs SDM API. To widok zawierający listę wszystkich struktur, urządzeń i opcji dostępu, któreuser może przyznać developer. userdecyduje, do czego przyznać dostęp podczas procesu autoryzacji, i zachowuje kontrolę nad tym dostępem.
Opcje wybrane w PCM są mapowane na grupy cech, czyli zbiory cech, do których developer będzie mieć dostęp. Niektóre grupy cech są ze sobą połączone w zależności od tego, jaki typ integracjideveloper oferuje user. Aby umożliwić tę integrację, usermusi przyznać uprawnienia tym połączonym grupom cech. W przeciwnym razie użytkownik może przyznać uprawnienia poszczególnym, niezwiązanym ze sobą grupom cech.
Włącz PCM
Aby włączyć widok PCM w przypadku user, zastąp standardowy punkt końcowy interfejsu API Google OAuth 2.0 nowym punktem końcowym OAuth dla żądania autoryzacji:
https://nestservices.google.com/partnerconnections/project-id /auth
W adresie URL używaj tych parametrów:
Parametr | Opis |
---|---|
redirect_uri |
URI, do którego należy kierować user po pomyślnej autoryzacji. |
client_id |
Identyfikator klienta OAuth 2.0 z Twojego projektu Google Cloud. Upewnij się, że jest to ten sam identyfikator powiązany z Twoim identyfikatorem Project . Pamiętaj, że identyfikator klienta OAuth musi być prawidłowy i niepowtarzalny dla projecti nie można go udostępniać innym project. |
access_type |
Wartość do użycia: offline |
prompt |
Wartość do użycia: consent |
response_type |
Wartość do użycia: code W odpowiedzi otrzymasz kod autoryzacyjny. |
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 między żądaniem a wywołaniem zwrotnym. |
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
Gdy user udzieli uprawnień, w identyfikatorze URI przekierowania zwracany jest kod autoryzacji jako parametr code
. Użyj tego kodu, aby uzyskać token dostępu.
Dodawanie PCM do aplikacji
W aplikacji dodaj widok PCM, używając tego adresu URL:
https://nestservices.google.com/partnerconnections
Gdy użytkownik user zaloguje się na konto, na tej stronie wyświetlą się wszystkie połączoneDevice Access developer, a także lista wszystkich struktur i urządzeń z przełącznikami do przyznawania i odwoływania uprawnień. user możesz też na tej stronie odłączyć połączenie z poszczególnymi partnerami.
Niezweryfikowane aplikacje
Interfejs SDM API używa ograniczonego zakresu, co oznacza, że wszystkie aplikacje, które używają tego zakresu podczas autoryzacji, będą „niezweryfikowane”, dopóki nie zostanie przeprowadzona weryfikacja interfejsu OAuth API. W przypadku korzystania z Device Access do celów osobistych weryfikacja interfejsu OAuth API nie jest wymagana.
Podczas procesu autoryzacji może się wyświetlić ekran „Google nie zweryfikowało tej aplikacji”. Wyświetla się on, jeśli zakres sdm.service
nie jest skonfigurowany na ekranie akceptacji OAuth w Google Cloud. Aby pominąć ten ekran, kliknij opcję Zaawansowane, a następnie Przejdź do Nazwa projektu (niebezpieczne).
Więcej informacji znajdziesz na ekranie niezweryfikowanej aplikacji.
Tokeny dostępu
Wszystkie wywołania interfejsu SDM API służące do zarządzania autoryzowanymi strukturami i urządzeniami muszą używać unikalnego tokena dostępu przyznanego developer przezuser podczas autoryzacji. Tokeny dostępu są krótkotrwałe i należy je regularnie odświeżać, aby zapewnić ciągłość dostępu.
Jeśli a user póżniej cofnie developer dostęp do struktury lub urządzenia, token dostępu natychmiast wygaśnie i nie będzie można go odświeżyć, a developer nie będzie już mógł wywoływać interfejs SDM API w imieniu tego user.
Unieważnianie autoryzacji konta
Istnieją różne sposoby odwoływania autoryzacji konta Google. Najlepszą metodą jest użycie przez użytkownika Menedżera połączeń z partnerem (PCM) do modyfikowania uprawnień konta. Aby dowiedzieć się więcej, przeczytaj artykuł Zmiana uprawnień do konta. Token dostępu można też anulować w ten sposób:
Użytkownik może cofnąć uprawnienia 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 Anulowanie tokenów.
Wbudowane widoki sieciowe
Nowe zasady dotyczące bezpiecznych przeglądarek zabraniają wysyłania żądań Google OAuth w osadzonych bibliotekach przeglądarki, które są często nazywane osadzonymi widokami webview. Wszystkie wbudowane widoki stron zostaną zablokowane. Wbudowane biblioteki WebView są problematyczne, ponieważ umożliwiają nieuczciwym deweloperom przechwytywanie i modyfikowanie komunikacji między Google a użytkownikami. Wbudowane widoki sieciowe nie tylko wpływają na bezpieczeństwo konta, ale mogą też wpływać na łatwość obsługi aplikacji.
Jeśli te zasady mają wpływ na Twoją witrynę, zapoznaj się z artykułem pomocy Zbliżające się zmiany zabezpieczeń w punkcie końcowym autoryzacji OAuth 2.0 Google w osadzonych bibliotekach WebView.