Я создал намерение в консоли Alexa и соответствующую функцию в AWS Lambda (Javascript), и он работает по большей части, как и ожидалось.Однако я не могу собрать значения слота.
exports.handler = function (event, context, callback) {
const alexa = Alexa.handler(event, context, callback);
alexa.APP_ID = APP_ID;
let config = new Map();
let character = this.event.request.intent.slots.character.value;
if (!character)
character = 'default';
let handlers = getHandlers(config);
alexa.registerHandlers(handlers);
alexa.execute();
};
Ошибка, которую я получаю в тесте Alexa, в основном бесполезна, и я нахожу отладку Alexa довольно болезненной.Я пробовал тестировать непосредственно из Lambda и передавать полезную нагрузку JSON, но я не уверен, что это все равно будет работать.
Может кто-нибудь прокомментировать, будет ли this.event.request.intent.slots.character.value;
правильным?Я не вижу этого на официальных страницах AWS, но в примерах других людей.
Наконец, полезный груз из теста Alexa включает в себя:
"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.43808260-5aaa-4837-9f28-4eaccb7c9b3c",
"timestamp": "2018-05-31T00:49:08Z",
"locale": "en-AU",
"intent": {
"name": "playSeinfeldQuoteIntent",
"confirmationStatus": "NONE",
"slots": {
"character": {
"name": "character",
"confirmationStatus": "NONE"
},
"position": {
"name": "position",
"confirmationStatus": "NONE"
}
}
}
}
Я бы ожидал, что он будет иметьзначения в слотах включены здесь, но это не так, это может быть проблемой.
Любые предложения будут действительно полезны.
Редактировать: я обнаружил, что захватывает значения ОК, нопервая буква каждой переменной была заглавной.Я думаю, потому что они - имена людей, Алекса использует их заглавные буквы.Я не учел это.