获取Alexa插槽值的麻烦是AWS Lamba功能

时间:2018-05-31 01:08:05

标签: javascript aws-lambda alexa

我已经在AWS Lambda(Javascript)中创建了一个Alexa控制台和相应功能的意图,并且它在大多数情况下都按预期工作。但是我似乎无法收集槽值。

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正在资助他们。我没想过。

0 个答案:

没有答案