嗨,几个月以来,我一直在 Alexa 上使用和开发技能。最近我更新到 ask sdk 版本 2。我发现一切都很酷,而且卡在任何地方。
我现在找不到发出意图的方法。像之前一样,我们可以通过以下方式从另一个 Intent 调用 Intent:
this.emitWithState(<intent name here>);
有人知道如何在 ask sdk V2 中实现这一点吗?
任何帮助将不胜感激。
嗨,几个月以来,我一直在 Alexa 上使用和开发技能。最近我更新到 ask sdk 版本 2。我发现一切都很酷,而且卡在任何地方。
我现在找不到发出意图的方法。像之前一样,我们可以通过以下方式从另一个 Intent 调用 Intent:
this.emitWithState(<intent name here>);
有人知道如何在 ask sdk V2 中实现这一点吗?
任何帮助将不胜感激。
这样做
const FirstIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'FirstIntentHandler';
},
handle(handlerInput) {
// some code
return SecondIntentHandler.handle(handlerinput);
},
};
如果您的技能的交互模型具有对话模型,您可以通过意图链接来完成上述操作。意图链接允许您的技能代码从任何意图开始对话管理,包括LaunchRequest。您可以使用 Dialog.Delegate 链接 Intent,如下所示:
.addDelegateDirective({
name: 'OrderIntent',
confirmationStatus: 'NONE',
slots: {}
})
这是意图链接的官方发布博客: https ://developer.amazon.com/blogs/alexa/post/9ffdbddb-948a-4eff-8408-7e210282ed38/intent-chaining-for-alexa-skill
我还编写了一个实现相同的示例:https ://github.com/akhileshAwasthi/Alexa-Intent-chaining
简单地做
this.emit(<intent_name>)
将工作。
const handlers = {
'LaunchRequest': function () {
this.emit('HelloWorldIntent');
},
'HelloWorldIntent': function () {
this.emit(':tell', 'Hello World!');
}
};