我只有1个意图,必须要求输入密码。如果密码错误,请再次询问,最多3次。
实施它的正确方法是什么? (我使用带有nodejs的alexa-sdk)
我尝试实现两种方法,但是它们因EXCEEDED_MAX_REPROMPTS而失败:
if pin_is_correct
emit(:tell, "cool")
else
emit(:ask, "what is your pin?", "what is your pin?")
和
unless pin_is_correct
let updatedIntent = this.event.request.intent
delete updatedIntent.slots.MY_PIN_SLOT_NAME.value
this.emit(':delegate', updatedIntent)
if this.event.request.dialogState !== 'COMPLETED'
this.emit(':delegate')
emit(:tell, "cool")
解决同样问题的任何例子?
答案 0 :(得分:1)
您设置计数器并为每个错误的条目保持增量。 达到最大重试次数时,您可以调用自定义方法(您需要在sdk中进行一些更改),例如
stopAlexa: function (speechOutput) {
this._context.succeed(buildSpeechletResponse({
session: this._session,
output: speechOutput,
shouldEndSession: true
}));
}
这里应该是EndSession:true是扮演以编程方式阻止Alexa的角色。