0

我無法理解的JSON錯誤的語法 我曾嘗試錯誤響應

return { 
     "requestId": self.request_id, 
     "payload": { 
      "commands": [{ 
       "ids": [self.device_id], 
       "status": "OFFLINE", 
       "errorCode": "deviceTurnedOff" 
      }] 
     } 
    } 

return { 
     "requestId": self.request_id, 
     "payload": { 
      "errorCode": "authFailure", 
      "commands": [{ 
       "devices": [{ 
        "ids": [self.device_id], 
        "status": "ERROR", 
        "errorCode": "deviceTurnedOff" 
       }] 
      }] 
     } 
    } 

return { 
     "requestId": self.request_id, 
     "payload": { 
     "errorCode": self.error_code 
     } 
    } 

以上的語法都不起作用,大多數時候谷歌家庭都表示你的行爲已經完成,但是我很重要Json在那裏出現錯誤。

我已閱讀谷歌行動文件,但未能理解。

回答

1

我已經想出了幾個有效載荷,並在諮詢the docs後成功地使用AoG模擬器成功觸發了錯誤。

Node.js的片段:

let resBody = { 
    requestId: request.requestId, 
    payload: { 
     "errorCode": "notSupported" 
    } 
} 
response.status(200).json(resBody); 

您確保requestId是智能家居的要求一樣嗎?你如何測試這些錯誤?

+0

是的!請求ID是相同的,我已經嘗試過這個錯誤響應json語法,不工作。我也在諮詢文檔,但它沒有工作,即使在2天谷歌家庭沒有給我回應「關閉device_name」,今天它給了我的迴應,我沒有改變任何代碼。 – Umair

+0

您使用什麼框架來返回這些JSON消息?它看起來不像Node JS。你的'return'對象是否被正在使用的任何更高級別的函數正確處理? –

+0

我正在使用python(無框架) 谷歌首頁 - > AWS API網關 - > AWS lambda 如果這是一個問題,剩下的技能將無法正常工作。我正在創建Google Home Smart Skill(** Thermostat **)。 我可以改變溫度,開啓/關閉,改變模式,增加/減少溫度 一切工作正常,除了錯誤響應。我的意思是,如果裝置離線我正在返回 '{ 「的requestId」: 「相同請求中找到」, 「有效載荷」:{ 「的errorCode」: 「deviceTurnedOff」 } }' 我已經測試JSON響應與**郵差**也與其定義文檔 – Umair