现在2天,我遇到的问题是我的lambda函数使用ask-sdk-core v2.0.2会返回无效的响应。
一个非常简单的设置:
HelloIntent
由HelloIntentHandler
处理:
const HelloIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'HelloIntent';
},
handle(handlerInput) {
const speechText = 'Hello back';
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.getResponse();
}
};
当我调用此意图时,模拟器直接进入:
请求技能的回复存在问题
使用ErrorHandler,我检查了handlerInput.requestEnvelope.request.error
的结果是:
{ type: 'INVALID_RESPONSE',
message: 'An exception occurred while dispatching the request to the skill.' }
问题:这里有什么问题?当我使用调用名称打开技能时,LaunchRequestHandler
被调用并正确响应,但任何其他意图都不起作用。
答案 0 :(得分:0)
好的,我发现了这个问题,从上面的错误中删除很难:
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'HelloIntent';
},
在canHandle
函数中,您需要检查请求类型和意图名称。