Javascript 函数无法获取Alexa插槽值

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(

我已经在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();
  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端,而是在语音接口端。我认为每个角色的第一个字母都大写了。我现在可以用了。谢谢