Как решить проблему сбоя ASK ChangeReport с INVALID_REQUEST_EXCEPTION - PullRequest
0 голосов
/ 09 марта 2019

Сводка. Я получаю ответ INVALID_REQUEST_EXCEPTION при попытке отправить событие ChangeReport.

Я устраняю неполадки с почтальоном.POSTing to: 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 голосов
/ 10 марта 2019

Вопреки моему пониманию выше, я не использовал правильный BearerToken. Я использовал исходный код OAuth, указанный в ответе на запрос о предоставлении гранта (я не понял часть LoginWithAmazon / LWA в обмене безопасностью).

Еще одной ошибкой, которая сделала это трудным, было отсутствие ошибки безопасности. Когда я создал заголовок Authorization, я пропустил тип (Bearer) и просто поместил свое значение в область значений заголовка, что могло быть основной причиной ошибки формата.

...