Una vez creados tus proyectos de Google Cloud y Acceso a dispositivos, puede autorizar una Cuenta de Google con un dispositivo Google Nest compatible para la API de SDM.
Vincula tu cuenta
Para ver estructuras y dispositivos, debes vincular una Cuenta de Google a tu Device Access con la PCM. PCM permite que user otorgue permiso permite que developeracceda a sus estructuras y datos del dispositivo.
En esta guía, actuarás como user y developer.
Abre el siguiente vínculo en una Web navegador, y reemplaza lo siguiente:
- project-id con tu Device Access Project ID
- oauth2-client-id por el ID de cliente de OAuth2 de tu Google Cloud Credenciales
https://nestservices.google.com/partnerconnections/project-id/auth?
redirect_uri=https://www.google.com& access_type=offline& prompt=consent& client_id=oauth2-client-id& response_type=code& scope=https://www.googleapis.com/auth/sdm.service - Si recientemente accediste a Google con varias cuentas, es posible que estés que aparece una pantalla inicial Elige una cuenta con una lista de tus Cuentas de Google. Si es así, selecciona la Cuenta de Google vinculada a los dispositivos deseas autorizar para Device Access.
- La pantalla de permisos de Google Nest es el mismo formato PCM. Aquí puedes otorgar permisos de estructura y dispositivo. Activa el permisos de tu casa (paso 1) y cualquier dispositivo en esa casa que se compatible con la API de SDM (Paso 2) y, luego, haz clic en Next.
- En la pantalla Elige una cuenta para continuar con Nombre del proyecto, donde Nombre del proyecto es el nombre de tu proyecto de Google Cloud. Selecciona la cuenta de Google que deseas autorizar para la API de SDM. Usa la misma Cuenta de Google que antes.
- Después de elegir una cuenta, es posible que aparezca una pantalla de advertencia que te diga lo siguiente: Google no verificó esta app. Si es así, haz clic en el ícono Avanzado y, luego, haz clic en Ir a Nombre del proyecto (no seguro). Consulta Google no verificó esta app para obtener más información información.
- En la pantalla Otorgar permiso a Nombre del proyecto, haz clic en Permitir para otorgar el permiso del proyecto para acceder a tu Cuenta de Google.
- En la pantalla Confirma tus elecciones, asegúrate de que los permisos que deseas que otorgar estén marcadas y haz clic en Permitir para confirmar.
El sistema lo redireccionará a https://www.google.com. El código de autorización se muestra como el parámetro
code
en la URL. que deben tener el siguiente formato:https://www.google.com?code=authorization-code&
scope=https://www.googleapis.com/auth/sdm.service - Copia el código de autorización.
Obtén un token de acceso
Usar el código de autorización para recuperar un token de acceso que que puedes usar para llamar a la API de SDM.
Abre una terminal y ejecuta el siguiente comando
curl
, que reemplaza lo siguiente:- oauth2-client-id y oauth2-client-secret con el ID de cliente de OAuth2 y el secreto del cliente de tu Google Cloud Credenciales
- authorization-code por el código que recibiste en el paso anterior
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?
client_id=oauth2-client-id& client_secret=oauth2-client-secret& code=authorization-code& grant_type=authorization_code& redirect_uri=https://www.google.com' Google OAuth muestra dos tokens, uno de acceso y uno token de actualización.
Copia ambos valores. El token de acceso se usa para llamar al API de SDM y el token de actualización se usa para obtener un nuevo token de acceso.{
Cómo hacer una llamada a la lista de dispositivos
La autorización no estará completa hasta que realices
tu primer
devices.list
llamada con tu nuevo token de acceso. Esta
llamada inicial finaliza el proceso de autorización y habilita eventos si
ya configuraste una suscripción a Pub/Sub.
Usa curl
a fin de realizar esta llamada para el extremo devices
:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Si la llamada se realiza correctamente, se mostrará una lista de los dispositivos vinculados a tu Device Access. en un proyecto final. Cada dispositivo tiene su propia lista única de características disponibles:
{ "devices": [ { "name": "enterprises/project-id/devices/device-id", "type": "sdm.devices.types.device-type", "traits": { ... }, "parentRelations": [ { "parent": "enterprises/project-id/structures/structure-id/rooms/room-id", "displayName": "device-room-name" } ] } ] }
Cómo usar un token de actualización
Los tokens de acceso para la API de SDM solo se
válido durante 1 hora, como se indica en el parámetro expires_in
que muestra Google OAuth. Si
que venza el token de acceso, usa el token de actualización para obtener uno nuevo.
El comando es similar al token de acceso uno, con la excepción de que usas
grant_type
Abre una terminal y ejecuta siguiente comando
curl
, en el que se reemplazará lo siguiente:- oauth2-client-id y oauth2-client-secret con el ID de cliente de OAuth2 y el secreto del cliente de tu Google Cloud Credenciales
- refresh-token por el código que recibiste cuando obtuviste el acceso inicialmente token.
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?
client_id=oauth2-client-id& client_secret=oauth2-client-secret& refresh_token=refresh-token& grant_type=refresh_token' Google OAuth devuelve un nuevo token de acceso.
{
Soluciona problemas
Para obtener más información sobre OAuth de Google, consulta Cómo usar OAuth 2.0 para acceder a Google APIs.
El token de actualización sigue por vencer
Los tokens de actualización pueden dejar de funcionar después de 7 días si no se aprueba el ID de cliente. una posible causa. El vencimiento del token de 7 días no se relaciona con el comercio o las aprobaciones de la zona de pruebas. Una cuenta de usuario o servicio debe obtener su OAuth Se aprobó el ID de cliente 2.0 y se pondrá en producción para obtener una mayor vida útil de los tokens. Consulta Vencimiento del token de actualización para obtener más información información.
Acceso denegado
Si configuraste tu pantalla de consentimiento de OAuth en Google Cloud y el Tipo de usuario es Externo, recibirás el mensaje “Acceso denegado” error si Intentar vincular una cuenta con una Cuenta de Google que no figure como usuario de prueba para tu app. Asegúrate de agregar la Cuenta de Google a la sección Usuarios de prueba. en tu pantalla de consentimiento de OAuth.
Error del Administrador de conexiones de socios (PCM)
Para obtener ayuda con cualquier error encontrado al acceder PCM, consulta Administrador de conexiones de socios (PCM) Referencia de error.
Google no verificó esta app
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.
Cliente no válido
Cuando intentes obtener un token de acceso o actualización, aparecerá el mensaje
cliente" si proporcionas un secreto del cliente de OAuth 2.0 incorrecto. Asegúrate de que
El valor de client_secret
que usas en las llamadas de token de actualización y acceso es el que
para el ID de cliente de OAuth 2.0 utilizado, como se encuentra en tu
Google Cloud
Credenciales
.
Solicitud no válida, falta el permiso obligatorio
Después de otorgar permisos en PCM, podrías encontrarte con un
"Solicitud no válida" error de “Falta el parámetro obligatorio: alcance”. Asegúrate de que
El valor de scope
que usas en las llamadas de autorización es el mismo que estableciste para el cliente de OAuth 2.0.
como se encuentra en tu cuenta de Google Cloud
Credenciales
.
El URI de redireccionamiento no coincide
Cuando realices el proceso de autorización, es posible que te encuentres con un mensaje de error que indica que el URI de redireccionamiento no coincide.
. Asegúrate de que el valor de redirect_uri
que usas en las llamadas de autorización sea el siguiente:
que configuraste para el cliente OAuth 2.0, tal como se encuentra en tu
Google Cloud
Credenciales
.
Modifica los permisos de la cuenta
Para modificar los permisos otorgados a un proyecto Device Access o desconectarlo ve a PCM:
https://nestservices.google.com/partnerconnections
En esta página, se muestran todos los servicios para desarrolladores de terceros (Device Access proyectos) conectado a tu cuenta. Selecciona el proyecto Device Access que deseas cambio. Usa la siguiente pantalla para modificar los permisos según lo desees.
Para revocar solo permisos específicos de un servicio autorizado, activa o desactiva el permisos que deseas revocar y haz clic en la flecha hacia atrás para guardar.
Para desconectar un servicio autorizado por completo, haz clic en Desvincular tu cuenta de Google Account para revocar todos los permisos y tokens de acceso al que se otorgó el proyecto otorgada para la cuenta.
Si no se muestra el servicio deseado en PCM, es posible que debas realizar una llamada a la lista de dispositivos primero.
Referencia rápida
Usa esta referencia para implementar rápidamente los pasos que te permitirán autorizar un user y vincular su cuenta de Google de Google Cloud.
Para usar esta referencia rápida, edita cada variable de marcador de posición en las muestras de código. con los valores para tu integración específica, y cópialos y pégalos según sea necesario:
1 PCM
Abre el siguiente vínculo en una Web navegador, y reemplaza lo siguiente:
- project-id con tu Device Access Project ID
- oauth2-client-id por el ID de cliente de OAuth2 de tu Google Cloud Credenciales
https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=https://www.google.com& access_type=offline& prompt=consent& client_id=oauth2-client-id& response_type=code& scope=https://www.googleapis.com/auth/sdm.service
2 códigos de autorización
El sistema lo redireccionará a
https://www.google.com. El código de autorización se muestra como el parámetro code
en la URL.
que deben tener el siguiente formato:
https://www.google.com?code=authorization-code&scope=https://www.googleapis.com/auth/sdm.service
3 tokens de acceso
Usar el código de autorización para recuperar un token de acceso que que puedes usar para llamar a la API de SDM.
Abre una terminal y ejecuta
el siguiente comando curl
, que reemplaza lo siguiente:
- oauth2-client-id y oauth2-client-secret con el ID de cliente de OAuth2 y el secreto del cliente de tu Google Cloud Credenciales
- authorization-code por el código que recibiste en el paso anterior
Google OAuth muestra dos tokens, uno de acceso y uno token de actualización.
Solicitud
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=https://www.google.com'
Respuesta
{"access_token": "access-token",
"expires_in": 3599,
"refresh_token": "refresh-token",
"scope": "https://www.googleapis.com/auth/sdm.service",
"token_type": "Bearer" }
4 Llamada a la API
La autorización no estará completa hasta que realices
tu primer
devices.list
llamada con tu nuevo token de acceso. Esta
llamada inicial finaliza el proceso de autorización y habilita eventos si
ya configuraste una suscripción a Pub/Sub.
Debes usar uno de los Las llamadas a la API que se enumeran para el permiso especificado para completar la autorización
sdm.service
dispositivos
Consulta la
devices.list
la referencia de la API para obtener más información.
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
5 tokens de actualización
Los tokens de acceso para la API de SDM solo se
válido durante 1 hora, como se indica en el parámetro expires_in
que muestra Google OAuth. Si
que venza el token de acceso, usa el token de actualización para obtener uno nuevo.
Abre una terminal y ejecuta
siguiente comando curl
, en el que se reemplazará lo siguiente:
- oauth2-client-id y oauth2-client-secret con el ID de cliente de OAuth2 y el secreto del cliente de tu Google Cloud Credenciales
- refresh-token por el código que recibiste cuando obtuviste el acceso inicialmente token.
Google OAuth devuelve un nuevo token de acceso.
Solicitud
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token'
Respuesta
{"access_token": "new-access-token",
"expires_in": 3599,
"scope": "https://www.googleapis.com/auth/sdm.service",
"token_type": "Bearer" }