Autorización

Los objetosDeveloperpueden usar la API de SDM para ver y administrar dispositivos Google Nest en nombre de user. El La API de SDM valida que user administre la a los que se accede y que la user dio su consentimiento developer leer o escribir las características de cada dispositivo, y que las developer se incluyó en la lista blanca para acceder a cada característica.

Para usar la API de SDM en la administración de dispositivos, developer primero debe contar con la autorización del user.

Para obtener una explicación del proceso de autorización, consulta el artículo Autoriza un Cuenta de la Device Access Guía de inicio rápido.

Para obtener ayuda con la solución de errores de autorización, consulta Autorización Errores

Flujo de OAuth

La API de SDM usa un flujo de Google OAuth de tres segmentos para user Autorización:

  • Cuando a user quiera autorizar a developer administración de los dispositivos Nest, la developer envía la user a PCM, donde la user accede a su Cuenta de Google.
  • user selecciona los permisos que se otorgarán a developer en PCM.
  • El elemento user otorga consentimiento a través de OAuth y otorga el permiso developer un Código de Autorización.
  • developer usa el código de autorización para recuperar un código de acceso. Token.
  • 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 configurarla, consulta Cómo usar OAuth 2.0 para Accede a las APIs de Google

Administrador de conexiones de socios (PCM)

La API de SDM proporciona PCM. Es un que enumera todas las estructuras, los dispositivos y las opciones de acceso a las que user puede otorgar a developer. El user elige a qué dar acceso durante el proceso de autorización y retiene control de ese acceso.

Las opciones seleccionadas en PCM se asignan a grupos de trait, que son colecciones de características a las que developer se le otorgará acceso. Algo de rasgo grupos entre sí, según el tipo de integración developer ofrece a la user, y la user debe otorgar permisos para que esos grupos de trait vinculados puedan habilitar la integración. De lo contrario, el usuario puede otorgar permisos para permisos grupos de características desvinculados, según lo desees.

Habilitar PCM

Para habilitar la vista PCM para un user, reemplaza el elemento extremo de OAuth 2.0 estándar de la API de Google con este nuevo extremo de OAuth para 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 El URI para dirigir a user después de que se realizó con éxito autorización.
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 projecty no se puede compartir con otros project.
access_type Valor que se debe usar: offline
prompt Valor que se debe usar: consent
response_type Valor que se debe usar: code
Se espera un código de autorización a cambio.
scope Valor que se debe usar: https://www.googleapis.com/auth/sdm.service
El alcance de la API de SDM.
state Opcional. Un valor opaco usado por el developer cliente para mantener el estado entre la solicitud y la devolución de llamada.
linking_token El token de vinculación obtenido del GetToken .

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 el 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 acceso token.

Para obtener ayuda con cualquier error encontrado al acceder PCM, consulta Administrador de conexiones de socios (PCM) Referencia de error.

Cómo agregar PCM a tu app

En tu app, agrega la vista PCM con esta URL:

https://nestservices.google.com/partnerconnections

Cuando user accede, esta página muestra todas sus cuentas Device Access developer, así como una lista de todas las estructuras y los dispositivos con botones de activación para otorgar y revocar permisos. La user puede también desconecta 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 Las apps que usen este alcance durante la autorización no se verificarán. a menos que Se completó la verificación de la API de OAuth. Cuando se usa Device Access uso personal, no se requiere la verificación de la API de OAuth.

Es posible que veas el mensaje "Google no verificó esta app". pantalla durante el período de proceso, que aparece si el permiso sdm.service no está configurado en la pantalla de consentimiento de OAuth en Google Cloud. Esta pantalla puede ser omitida haciendo clic en la opción Advanced y luego en Go to Project Nombre (no seguro).

Consulta App sin verificar pantalla para obtener más información.

Tokens de acceso

Todas las llamadas a la API de SDM para administrar estructuras autorizadas y Los dispositivos deben usar el token de acceso único otorgado al developer por el user durante la autorización. Los tokens de acceso son de corta duración y se deben actualizarse con regularidad para garantizar el acceso continuo.

Si a user más adelante revoca developer el acceso a una estructura o el token de acceso caducará de inmediato y no se podrá actualizar, y el developer ya no podrá llamar a la API de SDM en su nombre user.

Revocar la autorización de la cuenta

Hay varias formas de desautorizar una Cuenta de Google. El método preferido indica que el usuario puede usar el Administrador de conexiones de socios (PCM) para modificar la cuenta permisos. Consulta Cómo modificar los permisos de la cuenta para obtener más información. Los tokens de acceso también pueden revocarlos métodos:

  1. El usuario puede revocar en https://myaccount.google.com/permissions.

  2. El desarrollador puede pasar el token de acceso al extremo https://oauth2.googleapis.com/revoke Para aprender para obtener más información sobre OAuth de Google y la revocación de tokens, consulta Revocación de un token.

WebViews incorporadas

Una nueva política del navegador seguro prohíbe las solicitudes de Google OAuth en el navegador incorporado. conocidas como WebViews incorporadas. Todas las WebViews incorporadas se bloqueará. Las bibliotecas de WebView incorporadas son problemáticas porque permitir que un desarrollador malicioso intercepte y altere las comunicaciones entre entre Google y sus usuarios. Las WebViews incorporadas no solo afectan la seguridad de las cuentas, sino que podría afectar la usabilidad de tu aplicación.

Si esta política te afecta, consulta el Próximos cambios de seguridad en el extremo de autorización de OAuth 2.0 de Google en WebViews incorporados .