LesDeveloperpeuvent utiliser l'API SDM pour afficher et gérer des appareils Google Nest au nom des user. L'API SDM vérifie que le user gère les appareils auxquels il accède, que le user a autorisé ladeveloper 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.
Pour utiliser l'API SDM pour la gestion des appareils, ledeveloper doit d'abord être autorisé par le user.
Pour découvrir la procédure d'autorisation, consultez la page Autoriser un compte du Device Access guide de démarrage rapide.
Pour obtenir de l'aide sur la résolution des erreurs d'autorisation, consultez la section Erreurs d'autorisation.
Flux OAuth
L'API SDM utilise un flux OAuth Google en trois étapes pour l'autorisationuser :
- Lorsque a user souhaite autoriser a developer à gérer les appareils Nest, developer envoieuser à PCM, où userse connecte à son compte Google.
- Le user sélectionne les autorisations à accorder pour le developerdans PCM.
- Le user fournit l'autorisation via OAuth, en accordant audeveloper un code d'autorisation.
- 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 la section Utiliser OAuth 2.0 pour accéder aux API Google.
Gestionnaire des connexions partenaires (PCM)
PCM est fourni par l'API SDM. Il s'agit d'une vue qui liste toutes les structures, les appareils et les options d'accès que leuser peut accorder au developer. 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 aux groupes de traits, qui sont des collections de caractéristiques auxquelles developer aura accès. Certains groupes de traits sont liés entre eux, en fonction du type d'intégration que ledeveloper propose au user. Le userdoit accorder des autorisations à ces groupes de traits associés pour activer cette intégration. Sinon, l'utilisateur a la possibilité d'accorder des autorisations à des groupes de caractéristiques individuels et dissociés comme souhaité.
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 requête d'autorisation:
https://nestservices.google.com/partnerconnections/project-id/auth
Utilisez les paramètres suivants dans l'URL:
Paramètre | Description |
---|---|
redirect_uri |
URI à diriger vers le 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 du même que celui associé à votre ID Project . Notez qu'un ID client OAuth doit être valide et propre à 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: code Un 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 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
Une fois que l' user a accordé l'autorisation, un code d'autorisation est renvoyé en tant que paramètre code
dans l'URI de redirection. 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/partnerconnections
Lorsque 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 d'activation/de désactivation pour accorder et révoquer des autorisations. user peut également dissocier une connexion partenaire par 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", sauf si la validation de l'API OAuth est effectuée. Lorsque vous utilisez Device Access à des fins personnelles, la validation de l'API OAuth n'est pas requise.
L'écran "Google n'a pas validé cette application" peut s'afficher pendant le processus d'autorisation. Il apparaît si le champ d'application sdm.service
n'est pas configuré sur votre écran d'autorisation OAuth dans Google Cloud. Pour passer cet écran, cliquez sur l'option Advanced (Avancé), puis sur Go to Project Name (Accéder au nom du projet) (non sécurisé).
Pour en savoir plus, consultez la section Écran de l'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 ont une courte durée de vie et doivent être actualisés régulièrement pour garantir un accès continu.
Si a user révoque ultérieurement developer l'accès à une structure ou à un appareil, le jeton d'accès expire immédiatement et ne peut pas être actualisé. Ledeveloper ne pourra plus appeler l'API SDM au nom de ce user.
Révoquer l'autorisation du compte
Il existe plusieurs façons de désautoriser un compte Google. La méthode recommandée consiste à utiliser le Partner Connections Manager (PCM) pour modifier les autorisations du compte. Pour en savoir plus, consultez la section Modifier les autorisations du compte. Un jeton d'accès peut également être révoqué par les méthodes suivantes:
L'utilisateur peut les révoquer sur la page 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 OAuth Google et la révocation de jetons, consultez la section Révoquer un jeton.
WebViews intégrées
Un nouveau règlement sur les navigateurs sécurisés interdit les requêtes OAuth de Google dans les bibliothèques de navigateurs intégrées, communément appelées WebView intégrées. Toutes les vues Web intégrées seront bloquées. Les bibliothèques WebView intégrées sont problématiques, car elles permettent à un développeur malveillant d'intercepter et de modifier les communications entre Google et ses utilisateurs. Les WebViews intégrés affectent la sécurité du compte, mais peuvent aussi affecter la facilité d'utilisation de votre application.
Si vous êtes concerné par cette règle, 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.