Javascript 函数无法获取Alexa插槽值
我已经在Alexa控制台中创建了一个intent,并在AWS Lambda(Javascript)中创建了相应的函数,它在大部分情况下按照预期工作。但是,我似乎无法收集插槽值Javascript 函数无法获取Alexa插槽值,javascript,aws-lambda,alexa,Javascript,Aws Lambda,Alexa,我已经在Alexa控制台中创建了一个intent,并在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(
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"
}
}
}
}
我本以为它会在这里包含插槽上的值,但它们不是,所以这可能是问题所在
任何建议都会很有帮助
编辑:我发现我捕获的值还行,但每个变量的第一个字母都被大写。我猜是因为它们是人们的名字,Alexa把它们大写了。我没有考虑到这一点。您的捕获是正确的,但无法捕获该值。角色槽是否包含jerry、elaine等的项目列表。问题似乎不在lambda端,而是在语音接口端。我认为每个角色的第一个字母都大写了。我现在可以用了。谢谢