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參數。