我正在为亚马逊Alexa开发一个简单的自定义事实技能,并试图了解如何制作自己的技能!
当我在开发者控制台中使用“测试”功能时,询问Alexa“Alexa,打开[调用名称]”工作正常,她将提出一个事实。然而,说“Alexa,打开[调用名称]并告诉我一些事情”将导致“嗯,我不确定”。 “告诉我一些事情”是我的一个样本话语。除了初始调用之外什么都没有。我使用Alexa技能套件中提供的模板来培养我的技能。
答案 0 :(得分:1)
Alexa,打开[调用名称]
应该打开你的技能。
如果你直接要求它告诉某事,Alexa,问[调用名称]到[话语]
应该是正确的。
答案 1 :(得分:0)
当您使用调用名称打开您的技能时,它会触发LaunchRequestHandler
。默认情况下,LaunchRequestHandler
附带withShouldEndSession(false)
,这意味着会话在触发后仍会保持打开状态。
但您在技能中创建的其他CustomIntentHandlers
默认情况下不会附带withShouldEndSession(false)
。这就是每次触发任何CustomIntentHandlers
时会话结束的原因。
我们可以避免这种行为。我们需要告诉alexa不要通过在CustomIntentHandlers
的每个/某些(取决于你的目标)中设置withShouldEndSession为false来结束会话:
return handlerInput.responseBuilder
.speak(speakOutput)
.reprompt(repromptOutput)
.withShouldEndSession(false)
.getResponse();