Notice: We're retiring Works with Nest. See the home page for more information.
O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Referência de Autorização

Pedido de código de autorização

Dependendo do tipo de solicitação, implementamos diferentes comprimentos de código e valores TTL (Time-to-Live):

Fluxo TTL Comprimento do código
Rede 10 minutos 16 caracteres
PIN 48 horas 8 caracteres

Parâmetros

Os parâmetros de autorização com suporte na API Nest são:

Nome Tipo Requeridos Descrição
client_id corda sim Disponível na página Clientes OAuth.
redirect_uri corda não Use isso para especificar o URI de redirecionamento desejado se vários URIs de redirecionamento estiverem configurados para seu cliente. Omita-o para usar seu URI de redirecionamento padrão.

Não inclua nenhum outro parâmetro no próprio parâmetro redirect_uri , ele deve corresponder exatamente a um URI de redirecionamento configurado para seu cliente.
state corda sim Use isto para especificar um valor não adivinhado para combater ataques CSRF . Caso contrário, use o valor padrão de STATE .

Mensagens de erro de autorização baseadas em PIN

As seguintes mensagens de erro podem ser exibidas para usuários durante solicitações de código de autorização com base em PIN:

Mensagem de erro do usuário Explicação
ID do cliente ou parâmetros de estado ausentes. O URL de autorização está faltando o client_id ou o parâmetro state , ou ambos. Certifique-se de que o URL de autorização aprovado esteja completo e preciso.
Ops! Encontramos um erro. Por favor, tente novamente. Este erro ocorre a partir do seguinte:
  • O serviço Nest está fora do ar. Espere até que o serviço Nest seja restaurado.
  • Não existe um cliente para o client_id fornecido. Certifique-se de que a URL de autorização aprovada está usando o client_id correto.
A conexão com o nome da empresa não está disponível no momento. Entre em contato com a Nest para obter mais informações. O cliente excedeu a cota do usuário. Envie seu cliente para revisão para adicionar mais usuários.

Redirecionar respostas de erro de autorização baseadas em URI

Para todas as respostas, content-type: application/json .

Parâmetros obrigatórios ausentes

Detalhes
Código de status HTTP 400 Bad Request
Corpo {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Explicação Um parâmetro obrigatório, PARAM_NAME , está faltando na solicitação do código de autorização.

redirect_uri não pré-registrado

Detalhes
Código de status HTTP 400 Bad Request
Corpo {
"error":"input_data_error",
"error_description":"redirect_uri not pre-registered"
}
Explicação O parâmetro redirect_uri usado na solicitação de token de acesso não corresponde a nenhum dos URIs de redirecionamento configurados para seu cliente.

Solicitação de token de acesso

Recomendamos que você cumpra este padrão OAuth , que oferece maior segurança ao incluir as credenciais do cliente no corpo da solicitação. As chamadas com credenciais de cliente no cabeçalho continuarão funcionando, mas não são recomendadas.

A solicitação de token de acesso está na forma de uma solicitação HTTP POST.

Parâmetros

Nome Tipo Requeridos Descrição
code corda sim O código de autorização que é passado depois que seu cliente concorda em dar ao seu aplicativo acesso aos dados do Nest. Este valor é fornecido por uma solicitação de código de autorização bem-sucedida.

Aprenda a configurar a autorização
client_id corda sim Disponível na página Clientes OAuth.
client_secret corda sim Disponível na página Clientes OAuth; também pode ser chamada de chave de aplicativo.
grant_type corda sim Deve ser esta string: authorization_code

Resposta

Para todas as respostas, content-type: application/json

Código de status HTTP Descrição Corpo
200 OK O token de acesso é retornado. Use o token de acesso em chamadas para o serviço Nest. LONG é o número de segundos até que o token expire. {
"access_token":"STRING",
"expires_in":LONG
}

Tempo de vida do token de acesso

Não oferecemos suporte a tokens de atualização , porque os tokens de acesso efetivamente não expiram. Consulte a Visão geral de autorização para obter mais informações sobre o fluxo de autorização com base na Web e em PIN.

Respostas de erro de token de acesso

Para todas as respostas, content-type: application/json .

Código de autorização expirado

Detalhes
Código de status HTTP 400 Bad Request
Corpo {
"error":"oauth2_error",
"error_description":"authorization code expired"
}
Explicação O código de autorização expirou. Um novo código de autorização é necessário para solicitar um token de acesso.

Código de autorização não encontrado

Detalhes
Código de status HTTP 400 Bad Request
Corpo {
"error":"oauth2_error",
"error_description":"authorization code not found"
}
Explicação O parâmetro code é inválido. Verifique se você está usando o código de autorização correto.

Cliente não ativo

Detalhes
Código de status HTTP 403 Proibido
Corpo {
"error":"client_not_active",
"error_description":"client is not active"
}
Explicação Verifique se você está usando os parâmetros corretos. Se os parâmetros estiverem corretos e o erro ocorrer apenas para alguns métodos de autorização (por exemplo, a autorização foi bem-sucedida usando o Postman, mas não usando o Curl), pode haver algo errado com sua sintaxe.

Este erro também ocorre se o seu cliente estiver desativado.

Segredo do cliente não encontrado

Detalhes
Código de status HTTP 400 Bad Request
Corpo {
"error":"oauth2_error",
"error_description":"client secret not found"
}
Explicação O parâmetro client_secret é inválido. Verifique se você está usando o valor client_secret correto.

Parâmetros obrigatórios ausentes

Detalhes
Código de status HTTP 400 Bad Request
Corpo {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Explicação Um parâmetro obrigatório, PARAM_NAME , está faltando na solicitação de token de acesso.

redirect_uri não permitido

Detalhes
Código de status HTTP 400 Bad Request
Corpo {
"error":"input_error",
"error_description":"redirect_uri not allowed"
}
Explicação O parâmetro redirect_uri foi usado na solicitação de token de acesso.