En Google, luchamos por la equidad racial de la comunidad negra. Más información

Referencia de autorización

Solicitud de código de autorización

Dependiendo del tipo de solicitud, implementamos diferentes longitudes de código y valores TTL (Time-to-Live):

Flujo TTL Longitud del código
Web 10 minutos 16 caracteres
ALFILER 48 horas 8 caracteres

Parámetros

Los parámetros de autorización admitidos en la API de Nest son:

Nombre Tipo Requerido Descripción
client_id cuerda Disponible en la página Clientes OAuth.
redirect_uri cuerda No Use esto para especificar el URI de redireccionamiento deseado si se configuran varios URI de redireccionamiento para su cliente. Omitirlo para usar su URI de redireccionamiento predeterminado.

No incluya ningún otro parámetro dentro de la redirect_uri propio parámetro, que debe coincidir con una redirección URI configurado para su cliente exactamente.
state cuerda Utilice esta opción para especificar un valor que no sea fácil de adivinar para combatir los ataques CSRF . De lo contrario, utilice el valor predeterminado de STATE .

Mensajes de error de autorización basados ​​en PIN

Los siguientes mensajes de error se pueden mostrar a los usuarios durante las solicitudes de códigos de autorización basados ​​en PIN:

Mensaje de error del usuario Explicación
Falta el ID de cliente o los parámetros de estado. La URL de autorización no se encuentra o bien el client_id o state de parámetros, o ambos. Asegúrese de que la URL de autorización aprobada sea completa y precisa.
¡UPS! Hemos encontrado un error. Inténtalo de nuevo. Este error se produce por lo siguiente:
  • El servicio Nido está abajo. Espere hasta que se restablezca el servicio de Nest.
  • Un cliente no existe para el dado client_id . Asegurar la autorización aprobada URL está utilizando el correcto client_id .
Conexión a Nombre de la empresa no está disponible actualmente. Comuníquese con Nest para obtener más información. El cliente ha superado la cuota de usuarios. Envíe su cliente a revisión para agregar más usuarios.

Redirigir respuestas de error de autorización basadas en URI

Para todas las respuestas, de tipo de contenido: application/json .

Faltan parámetros obligatorios

Detalles
Código de estado HTTP 400 Petición Incorrecta
Cuerpo {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Explicación Un parámetro requerido, PARAM_NAME , no se encuentra en la solicitud de código de autorización.

redirect_uri no prerregistrado

Detalles
Código de estado HTTP 400 Petición Incorrecta
Cuerpo {
"error":"input_data_error",
"error_description":"redirect_uri not pre-registered"
}
Explicación El redirect_uri parámetro utilizado en la solicitud de token de acceso no coincide con ninguno de los URI de redireccionamiento configurada para su cliente.

Solicitud de token de acceso

Recomendamos a cumplir con esta norma OAuth , que ofrece una mayor seguridad mediante la inclusión de las credenciales del cliente en el cuerpo de la petición. Las llamadas con credenciales de cliente en el encabezado seguirán funcionando, pero no se recomiendan.

La solicitud del token de acceso tiene la forma de una solicitud HTTP POST.

Parámetros

Nombre Tipo Requerido Descripción
code cuerda El código de autorización que se transmite después de que su cliente acepta que su aplicación acceda a los datos de Nest. Este valor lo proporciona una solicitud de código de autorización exitosa.

Más información sobre cómo configurar la autorización
client_id cuerda Disponible en la página Clientes OAuth.
client_secret cuerda Disponible en la página Clientes OAuth; también se puede llamar clave de aplicación.
grant_type cuerda Debe ser esta cadena: authorization_code

Respuesta

Para todas las respuestas, de tipo de contenido: application/json

Código de estado HTTP Descripción Cuerpo
200 OK Se devuelve el token de acceso. Utilice el token de acceso en las llamadas al servicio Nest. LARGO es el número de segundos hasta que caduca el token. {
"access_token":"STRING",
"expires_in":LONG
}

Duración del token de acceso

No apoyamos tokens de actualización , ya que son testigos de acceso de manera efectiva que no caduca. Ver la Descripción general de autorización para obtener más información sobre la web y el flujo de autorización basado en PIN.

Respuestas de error del token de acceso

Para todas las respuestas, de tipo de contenido: application/json .

El código de autorización venció

Detalles
Código de estado HTTP 400 Petición Incorrecta
Cuerpo {
"error":"oauth2_error",
"error_description":"authorization code expired"
}
Explicación El código de autorización ha caducado. Se necesita un nuevo código de autorización para solicitar un token de acceso.

No se encontró el código de autorización

Detalles
Código de estado HTTP 400 Petición Incorrecta
Cuerpo {
"error":"oauth2_error",
"error_description":"authorization code not found"
}
Explicación El code parámetro no es válido. Compruebe que está utilizando el código de autorización correcto.

Cliente inactivo

Detalles
Código de estado HTTP 403 Prohibido
Cuerpo {
"error":"client_not_active",
"error_description":"client is not active"
}
Explicación Compruebe que está utilizando los correctos parámetros . Si los parámetros son correctos y el error solo ocurre para algunos métodos de autorización (por ejemplo, la autorización se realiza correctamente con Postman, pero no con Curl), es posible que haya algún problema con la sintaxis.

Este error también ocurre si su cliente está desactivado.

No se encontró el secreto del cliente

Detalles
Código de estado HTTP 400 Petición Incorrecta
Cuerpo {
"error":"oauth2_error",
"error_description":"client secret not found"
}
Explicación El client_secret parámetro no es válido. Compruebe que está utilizando la correcta client_secret valor.

Faltan parámetros obligatorios

Detalles
Código de estado HTTP 400 Petición Incorrecta
Cuerpo {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Explicación Un parámetro requerido, PARAM_NAME , no se encuentra en la solicitud de token de acceso.

redirect_uri no permitido

Detalles
Código de estado HTTP 400 Petición Incorrecta
Cuerpo {
"error":"input_error",
"error_description":"redirect_uri not allowed"
}
Explicación El redirect_uri parámetro se utilizó en la solicitud de token de acceso.