Google致力于提高黑人社区的种族平等。 怎么看。
此页面由 Cloud Translation API 翻译。
Switch to English

授权参考

授权码请求

根据请求类型,我们实现不同的代码长度和TTL(生存时间)值:

TTL 码长
网页 10分钟 16个字符
48小时 8个字符

参量

Nest API支持的授权参数为:

名称类型需要描述
client_id 在OAuth客户端页面上可用。
redirect_uri 没有如果为您的客户端配置了多个重定向URI,请使用此选项指定所需的重定向URI。忽略它以使用您的默认重定向URI。

不要redirect_uri参数本身中包含任何其他参数,它应该与为您的客户端配置的重定向URI完全匹配。
state 使用此选项指定不可猜测的值来对抗CSRF攻击 。否则,请使用默认值STATE

基于PIN的授权错误消息

在基于PIN的授权码请求期间,可以向用户显示以下错误消息:

用户错误信息说明
缺少客户端ID或状态参数。 授权URL缺少client_idstate参数,或两者都缺失。确保传递的授权URL完整且准确。
糟糕!我们遇到了一个错误。请再试一遍。 发生此错误的原因如下:
  • Nest服务已关闭。等待直到Nest服务恢复。
  • 给定的client_id不存在客户端。确保传递的授权URL使用正确的client_id
当前无法连接到公司名称 。请联系Nest以获取更多信息。 客户端已超出用户配额。提交您的客户以进行审核以添加更多用户。

重定向基于URI的授权错误响应

对于所有响应,content-type: application/json

缺少必需的参数

细节
HTTP状态码 400错误的要求
身体 {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
说明 授权代码请求中缺少必需的参数PARAM_NAME

redirect_uri未预先注册

细节
HTTP状态码 400错误的要求
身体 {
"error":"input_data_error",
"error_description":"redirect_uri not pre-registered"
}
说明 访问令牌请求中使用的redirect_uri参数与为您的客户端配置的任何重定向URI不匹配。

访问令牌请求

我们建议您遵守此OAuth标准 ,该标准通过在请求正文中包含客户端凭据来提高安全性。标头中具有客户端凭据的呼叫将继续起作用,但不建议这样做。

访问令牌请求采用HTTP POST请求的形式。

参量

名称类型需要描述
code 客户同意授予您的应用访问Nest数据的权限后传递的授权代码。此值由成功的授权代码请求提供。

了解如何设置授权
client_id 在OAuth客户端页面上可用。
client_secret 在OAuth客户端页面上可用;也可以称为应用程序密钥。
grant_type 必须为以下字符串: authorization_code

响应

对于所有响应,内容类型: application/json

HTTP状态码描述身体
200 OK 返回访问令牌。在对Nest服务的调用中使用访问令牌。 LONG是令牌过期之前的秒数。 {
"access_token":"STRING",
"expires_in":LONG
}

访问令牌生存期

我们不支持刷新令牌 ,因为访问令牌实际上不会过期。有关基于Web和基于PIN的授权流程的更多信息,请参见授权概述

访问令牌错误响应

对于所有响应,content-type: application/json

授权码已过期

细节
HTTP状态码 400错误的要求
身体 {
"error":"oauth2_error",
"error_description":"authorization code expired"
}
说明 授权码已过期。需要新的授权码来请求访问令牌。

找不到授权码

细节
HTTP状态码 400错误的要求
身体 {
"error":"oauth2_error",
"error_description":"authorization code not found"
}
说明 code参数无效。检查您使用的授权码是否正确。

客户端未激活

细节
HTTP状态码 403禁止
身体 {
"error":"client_not_active",
"error_description":"client is not active"
}
说明 检查您使用的参数是否正确。如果参数正确,并且仅对某些授权方法会发生错误(例如,使用Postman成功进行授权,但未使用Curl进行授权),则语法可能存在问题。

如果您的客户端被停用,也会发生此错误。

找不到客户机密

细节
HTTP状态码 400错误的要求
身体 {
"error":"oauth2_error",
"error_description":"client secret not found"
}
说明 client_secret参数无效。检查您使用的是正确的client_secret值。

缺少必需的参数

细节
HTTP状态码 400错误的要求
身体 {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
说明 访问令牌请求中缺少必需的参数PARAM_NAME

redirect_uri不允许

细节
HTTP状态码 400错误的要求
身体 {
"error":"input_error",
"error_description":"redirect_uri not allowed"
}
说明 在访问令牌请求中使用了redirect_uri参数。