LesDeveloperpeuvent utiliser l'API SDM pour afficher et gérer les appareils Google Nest au nom des user. L'API SDM valide que le user gère les appareils auxquels l'utilisateur accède, que le user a consenti à la lecture ou à l'écriture des caractéristiques de chaque appareil, et que ledeveloper a été ajouté à la liste blanche pour accéder à chaque caractéristique.developer
Pour utiliser l'API SDM pour la gestion des appareils, ledeveloper doit d'abord être autorisé par le user.
Pour obtenir une présentation du processus d'autorisation, consultez la page Autoriser un compte du guide de démarrage rapide Device Access .
Pour obtenir de l'aide sur la résolution des erreurs d'autorisation, consultez Erreurs d'autorisation.
Flux OAuth
L'API SDM utilise un flux Google OAuth en trois étapes pour l'autorisationuser :
- Lorsque a user souhaite autoriser a developer à gérer les appareils Nest, l' developer envoie l'user à PCM, où l' userse connecte à son compte Google.
- user sélectionne les autorisations à accorder pour developerdans PCM.
- Le user donne son consentement via OAuth, accordant un code d'autorisation audeveloper .
- developer utilise le code d'autorisation pour récupérer un jeton d'accès.
- developer utilise le jeton d'accès avec des appels à l'API SDM pour la gestion des appareils.
Pour en savoir plus sur Google OAuth et sur la configuration, consultez Utiliser OAuth 2.0 pour accéder aux API Google.
Gestionnaire des connexions partenaires (PCM, Partner Connections Manager)
PCM est fourni par l'API SDM. Il s'agit d'une vue qui liste toutes les structures, tous les appareils et toutes les options d'accès que leuser peut accorder au developer. L' userchoisit à quoi donner accès lors du processus d'autorisation et conserve le contrôle de cet accès.
Les options sélectionnées dans PCM correspondent à des groupes de caractéristiques, qui sont des ensembles de caractéristiques auxquelles developer aura accès. Certains groupes de caractéristiques sont associés, en fonction du type d'intégration quedeveloper propose à user. userdoit accorder des autorisations pour ces groupes de caractéristiques associés afin d'activer cette intégration. Sinon, l'utilisateur peut accorder des autorisations pour des groupes de caractéristiques individuels et non associés, selon ses besoins.
Activer PCM
Pour activer la vue PCM pour un user, remplacez le point de terminaison OAuth 2.0 standard de l'API Google par ce nouveau point de terminaison OAuth pour la demande d'autorisation :
https://nestservices.google.com/partnerconnections/project-id/authUtilisez ces paramètres dans l'URL :
| Paramètre | Description |
|---|---|
redirect_uri |
URI vers lequel rediriger l' user après une autorisation réussie. |
client_id |
ID client OAuth 2.0 de votre projet Google Cloud. Assurez-vous qu'il s'agit de la même adresse e-mail que celle associée à votre identifiant Project . Notez qu'un ID client OAuth doit être valide et unique pour un project. Il ne peut pas être partagé avec d'autres project. |
access_type |
Valeur à utiliser : offline |
prompt |
Valeur à utiliser : consent |
response_type |
Valeur à utiliser : codeUn code d'autorisation est attendu en retour. |
scope |
Valeur à utiliser : https://www.googleapis.com/auth/sdm.service
Champ d'application de l'API SDM. |
state |
Facultatif. Valeur opaque utilisée par le client developer pour maintenir l'état entre la requête et le rappel. |
Exemple d'URL de 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.serviceUne fois que l'utilisateur a accordé l'autorisation, un code d'autorisation est renvoyé en tant que paramètre code dans l'URI de redirection. user Utilisez ce code pour obtenir un jeton d'accès.
Ajouter PCM à votre application
Dans votre application, ajoutez la vue PCM à l'aide de cette URL :
https://nestservices.google.com/partnerconnectionsLorsque l' user est connecté, cette page affiche tous sesDevice Access developerassociés, ainsi qu'une liste de toutes les structures et de tous les appareils avec des boutons permettant d'accorder et de révoquer des autorisations. L' user peut également dissocier une connexion de partenaire pour chaque partenaire sur cette page.
Applications non validées
L'API SDM utilise un champ d'application restreint, ce qui signifie que toutes les applications qui utilisent ce champ d'application lors de l'autorisation seront "non validées" tant que la validation de l'API OAuth n'aura pas été effectuée. Lorsque vous utilisez Device Access pour un usage personnel, la validation de l'API OAuth n'est pas requise.
Il est possible que l'écran "Google n'a pas validé cette application" s'affiche pendant le processus d'autorisation. Cela se produit si le niveau d'accès sdm.service n'est pas configuré sur votre écran de consentement OAuth dans Google Cloud. Vous pouvez ignorer cet écran en cliquant sur l'option Avancé, puis sur Accéder à Nom du projet (non sécurisé).
Pour en savoir plus, consultez la section Écran d'application non validée.
Jetons d'accès
Tous les appels à l'API SDM pour gérer les structures et les appareils autorisés doivent utiliser le jeton d'accès unique accordé à developer paruser lors de l'autorisation. Les jetons d'accès sont de courte durée et doivent être actualisés régulièrement pour garantir un accès continu.
Si a user révoque ultérieurement l'accès de developer à une structure ou à un appareil, le jeton d'accès expire immédiatement et ne peut pas être actualisé. De plus,developer ne pourra plus appeler l'API SDM au nom de user.
Révoquer l'autorisation du compte
Il existe plusieurs façons de désautoriser un compte Google. La méthode privilégiée consiste à ce que l'utilisateur modifie les autorisations du compte à l'aide du Gestionnaire des connexions partenaires (PCM). Pour en savoir plus, consultez Modifier les autorisations du compte. Un jeton d'accès peut également être révoqué à l'aide des méthodes suivantes :
L'utilisateur peut révoquer l'accès sur https://myaccount.google.com/permissions.
Le développeur peut transmettre le jeton d'accès au point de terminaison
https://oauth2.googleapis.com/revoke. Pour en savoir plus sur Google OAuth et la révocation de jetons, consultez Révoquer un jeton.
Webviews intégrées
Une nouvelle règle concernant les navigateurs sécurisés interdit les requêtes Google OAuth dans les bibliothèques de navigateurs intégrés, communément appelées "WebViews intégrées". Toutes les webviews intégrées seront bloquées. Les bibliothèques WebView intégrées posent problème, car elles permettent à un développeur malveillant d'intercepter et de modifier les communications entre Google et ses utilisateurs. Les WebViews intégrées affectent non seulement la sécurité du compte, mais aussi l'usabilité de votre application.
Si cette règle vous concerne, consultez l'article d'aide Modifications de sécurité à venir concernant le point de terminaison d'autorisation OAuth 2.0 de Google dans les bibliothèques WebView intégrées.