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