如何关闭 Alexa 中的对话?
How to close a conversation in Alexa?
我正在使用 ask-sdk 版本 2.3.0
const SessionEndedRequest = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return request.type === 'SessionEndedRequest'
},
handle(handlerInput) {
return handlerInput.responseBuilder.speak("Good bye").withShouldEndSession(true).getResponse();
}
};
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
LaunchRequest,
SessionEndedRequest
)
.lambda();
SessionEndedRequest 是当用户说 "Stop" 或 "Cancel"
时执行的函数
用户说"cancel"
时的输出
{
"body": {
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML",
"ssml": "<speak>Good bye</speak>"
},
"shouldEndSession": true,
"type": "_DEFAULT_RESPONSE"
},
"sessionAttributes": {},
"userAgent": "ask-node/2.3.0 Node/v8.10.0"
}
}
Alexa 的响应是这样的
There was a problem with the requested skill's response
在收到 SessionEndedRequest 后,您不能 return 使用任何语音、卡片或指令进行响应,SessionEndedRequestHandler 是放置清理逻辑的好地方。它通常有这种形式(注意它发送一个空响应):
const SessionEndedRequestHandler : RequestHandler = {
canHandle(handlerInput : HandlerInput) : boolean {
return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest';
},
handle(handlerInput : HandlerInput) : Response {
console.log(`Session ended with reason: ${(handlerInput.requestEnvelope.request as SessionEndedRequest).reason}`);
return handlerInput.responseBuilder.getResponse();
},
};
如果您想在 "cancel" 或 "stop" 之后说些什么,您需要为 AMAZON.CancelIntent
and/or AMAZON.StopIntent
[=13= 实施处理程序]
我正在使用 ask-sdk 版本 2.3.0
const SessionEndedRequest = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return request.type === 'SessionEndedRequest'
},
handle(handlerInput) {
return handlerInput.responseBuilder.speak("Good bye").withShouldEndSession(true).getResponse();
}
};
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
LaunchRequest,
SessionEndedRequest
)
.lambda();
SessionEndedRequest 是当用户说 "Stop" 或 "Cancel"
时执行的函数用户说"cancel"
时的输出{
"body": {
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML",
"ssml": "<speak>Good bye</speak>"
},
"shouldEndSession": true,
"type": "_DEFAULT_RESPONSE"
},
"sessionAttributes": {},
"userAgent": "ask-node/2.3.0 Node/v8.10.0"
}
}
Alexa 的响应是这样的
There was a problem with the requested skill's response
在收到 SessionEndedRequest 后,您不能 return 使用任何语音、卡片或指令进行响应,SessionEndedRequestHandler 是放置清理逻辑的好地方。它通常有这种形式(注意它发送一个空响应):
const SessionEndedRequestHandler : RequestHandler = {
canHandle(handlerInput : HandlerInput) : boolean {
return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest';
},
handle(handlerInput : HandlerInput) : Response {
console.log(`Session ended with reason: ${(handlerInput.requestEnvelope.request as SessionEndedRequest).reason}`);
return handlerInput.responseBuilder.getResponse();
},
};
如果您想在 "cancel" 或 "stop" 之后说些什么,您需要为 AMAZON.CancelIntent
and/or AMAZON.StopIntent
[=13= 实施处理程序]