亚马逊Alexa - 问同一个插槽超过两次

时间:2017-08-16 08:16:55

标签: node.js alexa-skills-kit alexa-skill

我只有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")

解决同样问题的任何例子?

1 个答案:

答案 0 :(得分:1)

您设置计数器并为每个错误的条目保持增量。 达到最大重试次数时,您可以调用自定义方法(您需要在sdk中进行一些更改),例如

stopAlexa: function (speechOutput) {
        this._context.succeed(buildSpeechletResponse({
            session: this._session,
            output: speechOutput,
            shouldEndSession: true
        }));
    }

这里应该是EndSession:true是扮演以编程方式阻止Alexa的角色。