在测试我的技能时,如果我不回答且超时,Alexa会向我的Lambda函数发送一个SessionEndedRequest。
基于以下文档:Handle Requests Sent by Alexa:
您的服务无法将响应发送回SessionEndedRequest。
因此,我没有回应这些要求。
但是随后我的应用显示了一条带有以下消息的卡:
技能响应被标记为失败
(技能名称)请求标识符:amzn1.echo-api.request.xxxxxxxxxxxxxxxxxxxxx
目标Lambda应用程序返回了失败响应
那么我们该如何处理没有给出响应并且不会导致此错误的请求?
我在Lambda中使用Node.js,但Python回答也很好。
答案 0 :(得分:1)
您确定卡中的错误仅是SessionEndedRequest
吗?
通常,即使您将SessionEndedRequest
的回复发送回Alexa,也不会说出来。
您可以在ask-nodejs-sdk-v2中处理这样的SessionEndedRequest
。
const SessionEndedRequestHandler = {
canHandle(handlerInput) {
console.log("Inside SessionEndedRequestHandler");
return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest';
},
handle(handlerInput) {
console.log(`Session ended with reason: ${JSON.stringify(handlerInput.requestEnvelope)}`);
return handlerInput.responseBuilder.getResponse();
},
};