如何解决ASK ChangeReport失败并出现INVALID_REQUEST_EXCEPTION的问题

时间:2019-03-09 16:05:35

标签: alexa alexa-skills-kit

摘要:尝试提交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中的其他代码示例进行了比较,但没有看到明显的错误。

我不确定如何缩小问题范围。

1 个答案:

答案 0 :(得分:0)

与我的理解相反,我没有使用正确的BearerToken。我使用的是授予响应中提供的原始OAuth代码(我不理解安全交换的LoginWithAmazon / LWA部分)。

使这一困难更加严重的另一个错误是缺少安全性错误。创建Authorization标头时,我省略了类型(Bearer),只是将我的值放在标头的值区域中,这可能是造成格式错误的基本原因。