似乎您可能会从alexa-sdk
.
本质上,您需要定义您的技能可以处于的一系列状态,并为每个状态定义一个意图处理程序。
您可能有一系列阶段,因为您的“状态如下:
const states = {
STAGE_ONE: "_STAGEONE",
STAGE_TWO: "_STAGETWO",
STAGE_N: "_STAGE_N"
}
Alexa.CreateStateHandler
然后,您使用以下函数为每个阶段定义不同的 IntentHandler
const StageOneHandler = Alexa.CreateStateHandler(states.STAGE_ONE, {
'MainIntent': function(){ ... },
'HelpIntent': function(){ ... },
...
}
使用这种方法,您需要为在该处理程序中的每个阶段有效的每个意图定义行为......也就是说,如果您有 4 个阶段,您可能最终会得到 5 个Amazon.HelpIntent
函数(每个状态一个以及未设置状态时的一个)。每个帮助意图都将能够返回交互阶段唯一的响应
最后,使用您的 alexa 技能注册所有状态处理程序。从文档中我们有这个例子:
exports.handler = function (event, context, callback) {
const alexa = Alexa.handler(event, context, callback);
alexa.appId = appId;
alexa.registerHandlers(StageOneHandler, StageTwoHandler,...);
alexa.execute();
};
然后在MainIntent
各种处理程序中的每个函数中,您需要明确设置下一个状态应该是什么......例如,在收到 STAGE_ONE 答案后,您可以使用 STAGE_TWO 将新状态设置为this.handler.state = states.STAGE_TWO