长话短说...
我从Facts蓝图“空间事实”开始了一项简单的技能
创建了一个const->
const WELCOME_MESSAGE = "Welcome! You want a space fact?";
并将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'); },
因此,我的技能今天被拒绝了,所以我想修复它并再次上传。
答案 0 :(得分:1)
再次问好,谢谢您的宝贵时间!
重新阅读通过电子邮件收到的认证反馈后,问题出在
“说“停止”后不返回StopIntent”,而不是说“退出”
据我所了解,单词“停止”,“取消”,“退出”和“退出”也有其自己的预定义功能,这些功能可从其中进行:
-当用户说“停止”时,它应该指向“ StopIntent”
-用户说“取消”时,它应该指向“ CancelIntent”
-说出“退出”或“退出”后,应该用“ SessionEndedRequest”强制USER_INITIATED强制关闭,并且没有答案。
因此,这些单词不应包含在StopIntent,CancelIntent,HelpIntent或NavigateHomeIntent中的示例话语中。另外,如果上述任何声明不起作用,那么您将无法通过认证。
经过分析,我的问题不在Lambda内,而是我的技能所言。问题的原因是在StopIntent和CancelIntent中添加了单词“ exit”和“ stop”。
根据我的测试,是否在StopIntent中包含“停止”一词没有什么区别,但是它会引起干扰,如果在StopIntent和CancelIntent中包含该词,也没有答案。
现在,我重新提交了技能,希望它很快就会上传。 我在这里写这个是为了防止新手陷入同样的情况。 再次感谢,祝您编程愉快!