摘要:尝试提交ChangeReport事件时,我收到INVALID_REQUEST_EXCEPTION响应。
我正在对邮递员进行故障排除。 发布到:https://api.amazonalexa.com/v3/events 一个标头:使用我的令牌进行授权(如果这是错误的,我会得到正确的错误)
我的身体:
{
"event":{
"header":{
"messageId":"06a6278a-0c38-47e5-90e9-12eef0205487",
"namespace":"Alexa",
"name":"ChangeReport",
"payloadVersion":"3"
},
"endpoint":{
"scope":{
"type":"BearerToken",
"token":"XXX My Token XXX"
},
"endpointId":"BedroomLight"
},
"payload":{
"change": {
"cause" : {
"type" : "PHYSICAL_INTERACTION"
},
"properties":[
{
"namespace": "Alexa.PowerController",
"name": "powerState",
"value": "ON",
"timeOfSample": "2019-03-09T15:22:48Z",
"uncertaintyInMilliseconds": 500
}]
}
}
}
}
响应:
{
"header": {
"namespace": "System",
"name": "Exception",
"messageId": "bb7a3bb7-5c2c-4568-8a31-ae24a075f15e"
},
"payload": {
"code": "INVALID_REQUEST_EXCEPTION",
"description": "The request was malformed."
}
}
我的输入通过了模式验证。
我尝试替换已知的无效值,以查看是否可以转移错误消息并缩小根本原因。
我与Github中的其他代码示例进行了比较,但没有看到明显的错误。
我不确定如何缩小问题范围。
答案 0 :(得分:0)
与我的理解相反,我没有使用正确的BearerToken。我使用的是授予响应中提供的原始OAuth代码(我不理解安全交换的LoginWithAmazon / LWA部分)。
使这一困难更加严重的另一个错误是缺少安全性错误。创建Authorization标头时,我省略了类型(Bearer),只是将我的值放在标头的值区域中,这可能是造成格式错误的基本原因。