Alexa(Lambda)说“退出”后未返回StopIntent

时间:2018-09-25 02:01:39

标签: aws-lambda exit alexa

长话短说...

  1. 我从Facts蓝图“空间事实”开始了一项简单的技能

  2. 创建了一个const->

    const WELCOME_MESSAGE = "Welcome! You want a space fact?";

  3. 并将LaunchRequest与IntentRequest分开(因此,用户可以说“开放空间事实”或说“开放空间事实并说出事实”)

    'LaunchRequest': function () {
    this.emit(':ask', WELCOME_MESSAGE); }
    'IntentRequest': function () {
    this.emit('GetNewFactIntent'); }
    

*现在,如果我仅通过说“开始太空技能”来开始这项技能... 我收到欢迎消息和“ shouldEndSession”:预期为假,

但是如果我现在说“退出”,我会收到:

“所请求的技能的响应存在问题”

我的JSON INPUT显示预期的“ SessionEndedRequest”

    "request": {
    "type": "SessionEndedRequest",
    "requestId": "amzn1.echo-api.request.c6ea8178-3cdb-4119-ae73-e8ea86ebba6d",
    "timestamp": "2018-09-25T01:14:05Z",
    "locale": "en-US",
    "reason": "USER_INITIATED"
}

但是我得到一个“空”的JSON输出。

-我做了一些研究,发现了这个https://github.com/alexa/skill-sample-nodejs-fact/issues/3

-我也尝试过这样的“未处理” ...但还是没有运气

    'Unhandled': function () {
    this.emit('AMAZON.StopIntent');  },

因此,我的技能今天被拒绝了,所以我想修复它并再次上传。

1 个答案:

答案 0 :(得分:1)

再次问好,谢谢您的宝贵时间!

重新阅读通过电子邮件收到的认证反馈后,问题出在
“说“停止”后不返回StopIntent”,而不是说“退出”

据我所了解,单词“停止”,“取消”,“退出”和“退出”也有其自己的预定义功能,这些功能可从其中进行:

-当用户说“停止”时,它应该指向“ StopIntent”

-用户说“取消”时,它应该指向“ CancelIntent”

-说出“退出”或“退出”后,应该用“ SessionEndedRequest”强制USER_INITIATED强制关闭,并且没有答案。

因此,这些单词不应包含在StopIntent,CancelIntent,HelpIntent或NavigateHomeIntent中的示例话语中。另外,如果上述任何声明不起作用,那么您将无法通过认证。

经过分析,我的问题不在Lambda内,而是我的技能所言。问题的原因是在StopIntent和CancelIntent中添加了单词“ exit”和“ stop”。

根据我的测试,是否在StopIntent中包含“停止”一词没有什么区别,但是它会引起干扰,如果在StopIntent和CancelIntent中包含该词,也没有答案。

现在,我重新提交了技能,希望它很快就会上传。 我在这里写这个是为了防止新手陷入同样的​​情况。 再次感谢,祝您编程愉快!