Alexa自定义意图未触发、无JSON请求响应仅默认意图生效求助
排查步骤
- 首先确认Alexa开发者控制台中你的自定义意图名称,和代码里
Alexa.getIntentName判断的checkInbox完全一致,大小写、拼写必须100%匹配,任意字符不符都会导致匹配失败。 - 确认你已经将定义好的
checkInboxIntentHandler注册到了Skill实例的请求处理链中,仅声明handler不会生效,需要找到代码中Skill初始化的位置,将该handler添加到addRequestHandlers的参数列表中,建议放在默认意图handler之前,避免被通用handler提前拦截。参考注册代码如下:
exports.handler = Alexa.SkillBuilders.custom() .addRequestHandlers( LaunchRequestHandler, checkInboxIntentHandler, // 新增该行注册你的自定义意图handler HelpIntentHandler, CancelAndStopIntentHandler, FallbackIntentHandler, SessionEndedRequestHandler ) .lambda()
- 检查控制台中该意图配置的示例话术是否覆盖你测试时使用的说法,你可以在「测试」标签页直接输入触发话术,查看控制台识别到的意图名称,如果识别为其他默认意图,补充更多不同表述的示例话术即可提升识别准确率。
- 确认代码部署的AWS区域和技能的发布区域匹配:北美区域技能对应
us-east-1,欧洲区域对应eu-west-1,区域不匹配会导致代码更新不生效。 - 你可以直接在测试控制台的「JSON输入」页签手动构造
IntentRequest请求,指定意图名为checkInbox后发送,若手动请求能得到预期返回,说明问题出在意图识别环节;若手动请求也无法触发,优先排查handler拼写、注册逻辑的问题。
内容的提问来源于stack exchange,提问作者Gopalakrishnan Iyer
相关产品推荐
相关产品推荐

