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 suportados 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 o seu cliente. Omita-o para usar seu URI de redirecionamento padrão.

Não inclua outros parâmetros dentro do próprio parâmetro redirect_uri , ele deve corresponder exatamente a um URI de redirecionamento configurado para o seu cliente.
state corda sim Use isso 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 aos 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á ausente no parâmetro client_id ou state , ou ambos. Verifique se o URL de autorização aprovado está completo e preciso.
Opa! Encontramos um erro. Por favor, tente novamente. Este erro ocorre do seguinte:
  • O serviço Nest está inoperante. Aguarde até que o serviço Nest seja restaurado.
  • Um cliente não existe para o client_id fornecido. Verifique se a URL de autorização passada 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, digite o conteúdo: application/json .

Parâmetros necessários ausentes

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

redirect_uri não pré-registrado

Detalhes
Código de status HTTP 400 Solicitação incorreta
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 o seu cliente.

Solicitação de token de acesso

Recomendamos que você cumpra esse 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 do 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 conceder 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 chamado de chave do aplicativo.
grant_type corda sim Deve ser esta sequência: authorization_code

Resposta

Para todas as respostas, digite o conteúdo: application/json

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

Duração do token de acesso

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

Respostas de erro do token de acesso

Para todas as respostas, digite o conteúdo: application/json .

Código de autorização expirado

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

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

Detalhes
Código de status HTTP 400 Solicitação incorreta
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 em 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 Solicitação incorreta
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 correto client_secret .

Parâmetros necessários ausentes

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

redirect_uri não permitido

Detalhes
Código de status HTTP 400 Solicitação incorreta
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.