LosDeveloperpueden usar la API de SDM para ver y administrar los dispositivos Google Nest en nombre de los user. La API de SDM valida que el objeto user administre los dispositivos a los que se accede, que el objeto user haya dado su consentimiento para que el objetodeveloper lea o escriba los rasgos de cada dispositivo y que el objetodeveloper se haya incluido en la lista blanca para acceder a cada rasgo. user
Para usar la API de SDM para la administración de dispositivos, eldeveloper primero debe estar autorizado por el user.
Para obtener una explicación del proceso de autorización, consulta la página Autoriza una cuenta de la guía de inicio rápido de Device Access .
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 segmentos para lauser autorización:
- Cuando a user desea autorizar a developer para administrar dispositivos Nest, el developer envía eluser al PCM, donde el useraccede a su Cuenta de Google.
- El user selecciona los permisos que se otorgarán para el developeren el PCM.
- El user proporciona consentimiento a través de OAuth, lo que otorga aldeveloper un código de autorización.
- El developer usa el código de autorización para recuperar un token de acceso.
- El 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 Google OAuth 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 el PCM. Es una vista que enumera todas las estructuras, los dispositivos y las opciones de acceso que eluser puede otorgar al developer. El userelige a qué otorgar acceso durante el proceso de autorización y conserva el control de ese acceso.
Las opciones seleccionadas en PCM se asignan a grupos de rasgos, que son colecciones de rasgos a los que se les otorgará acceso a developer . Algunos grupos de rasgos están vinculados entre sí, según el tipo de integración que ofrece eldeveloper al user, y el userdebe otorgar permisos para esos grupos de rasgos vinculados para habilitar esa integración. De lo contrario, el usuario puede otorgar permisos para grupos de rasgos individuales y no vinculados según lo desee.
Habilita PCM
Para habilitar la vista de PCM para un user, reemplaza el extremo estándar de OAuth 2.0 de la API de Google por este nuevo extremo de OAuth para la solicitud de autorización:
https://nestservices.google.com/partnerconnections/project-id/authUsa estos parámetros en la URL:
| Parámetro | Descripción |
|---|---|
redirect_uri |
Es el URI al que se redirecciona el user después de una autorización exitosa. |
client_id |
Es el ID de cliente de 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 projects. project |
access_type |
Valor que se usará: offline |
prompt |
Valor que se usará: consent |
response_type |
Valor para usar: codeSe espera un código de autorización a cambio. |
scope |
Valor para usar: https://www.googleapis.com/auth/sdm.service
Es 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.serviceDespués de que user otorga permiso, se devuelve un código de autorización como el parámetrocodeen 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/partnerconnectionsCuando el objeto user está conectado, esta página muestra todos sus objetosDevice Access developervinculados, así como una lista de todas las estructuras y dispositivos con botones de activación para otorgar y revocar permisos. En esta página, el user también puede desconectar una conexión de socio para cada socio.
Apps sin verificar
La API de SDM usa un alcance restringido, lo que significa que todas las apps que usen este alcance durante la autorización se considerarán "sin verificar" a menos que se complete la Verificación de la API de OAuth. Cuando se usa 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 Avanzado y, luego, en Ir a Nombre del proyecto (no seguro).
Consulta la 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 periódicamente para garantizar el acceso continuo.
Si a user revoca developer el acceso a una estructura o un dispositivo más adelante, el token de acceso vencerá de inmediato y no se podrá actualizar, y eldeveloper 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 anular la autorización de 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. Un token de acceso también se puede revocar con los siguientes métodos:
El usuario puede revocar el acceso 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 la revocación de tokens y OAuth de Google, consulta Revoca un token.
Webviews incorporadas
Una nueva política de navegadores seguros prohíbe las solicitudes de OAuth de Google en bibliotecas de navegadores incorporados, a las que comúnmente se hace referencia como WebView incorporadas. Se bloquearán todas las vistas web incorporadas. 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 componentes WebView integrados no solo afectan la seguridad de la cuenta, sino que también podrían afectar la usabilidad de tu aplicación.
Si esta política te afecta, consulta el artículo de asistencia Próximos cambios de seguridad en el extremo de autorización de OAuth 2.0 de Google en WebView integradas.