LosDeveloperpueden usar la API de SDM para ver y administrar dispositivos Google Nest en nombre de los user. La API de SDM valida que el elemento user administre los dispositivos a los que se accede, que user haya dado su consentimiento para quedeveloper se lea o escriba las características de cada dispositivo y quedeveloper se haya incluido en la lista de entidades permitidas para acceder a cada característica.
Para usar la API de SDM para la administración de dispositivos, el userdebe autorizar primero adeveloper .
Para obtener una explicación del proceso de autorización, consulta la página Cómo autorizar una cuenta de la Device Access guía de inicio rápido.
Para obtener ayuda con la solución de errores de autorización, consulta Errores de autorización.
Flujo de OAuth
La API de SDM usa un flujo de OAuth de Google de tres pasos para la autorización deuser :
- Cuando a user desea autorizar a developer para la administración de dispositivos Nest, developer envía eluser a PCM, donde useraccede a su Cuenta de Google.
- user selecciona los permisos que se otorgarán a developeren PCM.
- user proporciona consentimiento a través de OAuth y otorga adeveloper un código de autorización.
- developer usa el código de autorización para recuperar un token de acceso.
- developer usa el token de acceso con llamadas a la API de SDM para la administración de dispositivos.
Para obtener más información sobre OAuth de Google y cómo configurarlo, consulta Usa OAuth 2.0 para acceder a las APIs de Google.
Administrador de conexiones de socios (PCM)
La API de SDM proporciona PCM. Es una vista que enumera todas las estructuras, los dispositivos y las opciones de acceso queuser puede otorgar a developer. El userelige a qué otorgar acceso durante el proceso de autorización y retiene el control de ese acceso.
Las opciones seleccionadas en PCM se asignan a grupos de trait, que son colecciones de rasgos a los que developer tendrá acceso. Algunos grupos de atributos están vinculados entre sí, según el tipo de integración quedeveloper ofrezca a user, y userdebe otorgar permisos a esos grupos de atributos vinculados para habilitar esa integración. De lo contrario, el usuario puede otorgar permisos a grupos de atributos individuales y no vinculados según lo desee.
Habilitar PCM
Para habilitar la vista de PCM para un user, reemplaza el extremo OAuth 2.0 de la API de Google estándar por este nuevo extremo OAuth para la solicitud de autorización:
https://nestservices.google.com/partnerconnections/project-id/auth
Usa estos parámetros en la URL:
Parámetro | Descripción |
---|---|
redirect_uri |
Es el URI para dirigir a user después de una autorización correcta. |
client_id |
El ID de cliente OAuth 2.0 de tu proyecto de Google Cloud. Asegúrate de que sea el mismo asociado a tu ID de Project . Ten en cuenta que un ID de cliente de OAuth debe ser válido y único para un project, y no se puede compartir con otros project. |
access_type |
Valor que se usará: offline |
prompt |
Valor que se usará: consent |
response_type |
Valor que se debe usar: code A cambio, se espera un código de autorización. |
scope |
Valor que se debe usar: https://www.googleapis.com/auth/sdm.service
El alcance de la API de SDM. |
state |
Opcional. Es un valor opaco que usa el cliente de developer para mantener el estado entre la solicitud y la devolución de llamada. |
Ejemplo de 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.service
Después de que user otorga permiso, se muestra un código de autorización como el parámetro code
en el URI de redireccionamiento. Usa este código para obtener un token de acceso.
Agrega PCM a tu app
En tu app, agrega la vista de PCM con esta URL:
https://nestservices.google.com/partnerconnections
Cuando el user accede, esta página muestra todas susDevice Access developervinculadas, así como una lista de todas las estructuras y dispositivos con botones de activación para otorgar y revocar permisos. El user también puede desconectar una conexión de socio por socio desde esta página.
Apps sin verificar
La API de SDM usa un alcance restringido, lo que significa que cualquier app que use este alcance durante la autorización quedará “no verificada”, a menos que se complete la verificación de la API de OAuth. Cuando usas Device Access para uso personal, no se requiere la verificación de la API de OAuth.
Es posible que veas la pantalla "Google no verificó esta app" durante el proceso de autorización, que aparece si el permiso sdm.service
no está configurado en tu pantalla de consentimiento de OAuth en Google Cloud. Para omitir esta pantalla, haz clic en la opción Advanced y, luego, en Go to Project
Name (unsafe).
Consulta Pantalla de la app sin verificar para obtener más información.
Tokens de acceso
Todas las llamadas a la API de SDM para administrar estructuras y dispositivos autorizados deben usar el token de acceso único queuser le otorga a developer durante la autorización. Los tokens de acceso son de corta duración y deben actualizarse con regularidad para garantizar el acceso continuo.
Si a user revierte developer el acceso a una estructura o un dispositivo, el token de acceso vencerá de inmediato y no se podrá actualizar, ydeveloper ya no podrá llamar a la API de SDM en nombre de ese user.
Cómo revocar la autorización de la cuenta
Existen varias formas de desautorizar una Cuenta de Google. El método preferido es que el usuario utilice el Administrador de conexiones de socios (PCM) para modificar los permisos de la cuenta. Consulta Cómo modificar los permisos de la cuenta para obtener más información. También se puede revocar un token de acceso con los siguientes métodos:
El usuario puede revocar el permiso en https://myaccount.google.com/permissions.
El desarrollador puede pasar el token de acceso al extremo
https://oauth2.googleapis.com/revoke
. Para obtener más información sobre OAuth de Google y la revocación de tokens, consulta Cómo revocar un token.
WebViews incorporadas
Una nueva política del navegador seguro prohíbe las solicitudes de Google OAuth en las bibliotecas del navegador incorporadas, comúnmente denominadas WebViews incorporadas. Se bloquearán todos los objetos Webview incorporados. Las bibliotecas de WebView incorporadas son problemáticas porque permiten que un desarrollador malicioso intercepte y altere las comunicaciones entre Google y sus usuarios. Los WebViews incorporados no solo afectan la seguridad de la cuenta, sino que también pueden afectar la usabilidad de tu aplicación.
Si te afecta esta política, consulta el artículo de asistencia Próximos cambios de seguridad en el extremo de autorización de OAuth 2.0 de Google en WebViews incorporados.