【发布时间】:2018-09-11 12:22:35
【问题描述】:
在用户的活动会话结束时,我想使用handlerInput.attributesManager 删除所有 sessionAttributes。
如何在 AMAZOn.StopIntent 结束时删除所有会话
【问题讨论】:
标签: alexa alexa-skills-kit alexa-sdk-nodejs
在用户的活动会话结束时,我想使用handlerInput.attributesManager 删除所有 sessionAttributes。
如何在 AMAZOn.StopIntent 结束时删除所有会话
【问题讨论】:
标签: alexa alexa-skills-kit alexa-sdk-nodejs
即使在重新提示后也没有来自用户的输入,或者响应本身的 shouldEndSession 设置为 true,或者响应中有错误,Alexa 会结束它的活动会话。在所有这些情况下,sessionAttributes 都被清除。所以你不必明确清除它。
用户再次打开该技能以与该技能进行交互,这将是一个没有sessionAttributes 本身的新用户会话。
现在,如果你想结束会话,这反过来又会清除你所做的 sessionAttributes:
在ask-nodejs-sdk v2中,不要指定reprompt,这会自动将shouldEndSession设置为true。
return handlerInput.responseBuilder
.speak("Bye")
.getResponse();
在ask-nodejs-sdk v1中,使用:tell,这会自动将shouldEndSession设置为true。
this.emit(':tell', 'Bye');
【讨论】:
在这里我找到了解决方案,
handlerInput.attributesManager.setSessionAttributes({})
return handlerInput.responseBuilder
.speak("Goody Bye")
.withSimpleCard('', "Goody Bye")
.withShouldEndSession(true)
.getResponse()
【讨论】: