如何用'exit'终止Alexa技能?exit指令异常排查
解决Alexa SDK中
exit指令触发异常的问题 嘿,我之前也碰到过类似的情况,这就帮你搞定这个问题!
问题根源
你现在的代码只处理了AMAZON.CancelIntent和AMAZON.StopIntent,但Alexa的exit指令默认对应的是**AMAZON.ExitIntent**——这个Intent你没写处理器,所以Alexa收到exit时找不到对应的处理逻辑,直接报错退出了。
具体修复步骤
1. 给AMAZON.ExitIntent添加处理器
把这个Intent的处理逻辑加到你的代码里,和Cancel/StopIntent一样,直接转发到SessionEndRequest就行:
'AMAZON.CancelIntent': function () { this.emit('SessionEndRequest'); }, 'AMAZON.StopIntent': function () { this.emit('SessionEndRequest'); }, // 新增ExitIntent的处理 'AMAZON.ExitIntent': function () { this.emit('SessionEndRequest'); }
2. 确认技能配置里启用了ExitIntent
光加代码还不够,得确保你的技能在Alexa开发者后台已经启用了这个内置Intent:
- 打开Alexa开发者控制台,进入你的技能页面
- 切换到Interaction Model → Intents
- 如果没看到
AMAZON.ExitIntent,点击Add Intent,选择“从Alexa内置库中使用现有Intent”,搜索ExitIntent添加进去就行
3. 检查SessionEndRequest的处理逻辑
最后确认你的SessionEndRequest处理器是正常返回告别语的,比如这样写就没问题:
'SessionEndRequest': function () { this.response.speak('感谢使用我的技能,下次再见啦!'); this.emit(':responseReady'); }
做完这几步,exit指令就会和stop、cancel一样,乖乖返回告别语再退出会话啦~
内容的提问来源于stack exchange,提问作者RjC
相关产品推荐
相关产品推荐

