【问题标题】:Alexa Skills Kit: How to call custom intent from another intent in ASK sdk V2Alexa Skills Kit:如何在 ASK sdk V2 中从另一个意图调用自定义意图
【发布时间】:2018-05-18 12:15:12
【问题描述】:

您好几个月以来,我一直在 Alexa 上使用和开发技能。最近我更新到 ask sdk 版本 2。我发现一切都很酷,而且卡在任何地方。

我现在找不到发出意图的方法。像之前一样,我们可以通过以下方式从另一个 Intent 调用 Intent:

this.emitWithState(<intent name here>);

有人知道如何在 ask sdk V2 中实现这一点吗?

任何帮助将不胜感激。

【问题讨论】:

标签: alexa alexa-skills-kit alexa-skill alexa-app


【解决方案1】:

照做

const FirstIntentHandler = {
  canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'IntentRequest'
      && handlerInput.requestEnvelope.request.intent.name === 'FirstIntentHandler';
  },
  handle(handlerInput) {

    // some code
    return SecondIntentHandler.handle(handlerinput);
  },
};

【讨论】:

    【解决方案2】:

    如果您的技能的交互模型具有对话模型,您可以通过意图链接来完成上述操作。 Intent 链接允许您的技能代码从任何 Intent 开始对话管理,包括 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

    【讨论】:

      【解决方案3】:

      只是做

      this.emit(<intent_name>)
      

      会起作用的。

      const handlers = {
        'LaunchRequest': function () {
          this.emit('HelloWorldIntent');
        },
      
        'HelloWorldIntent': function () {
          this.emit(':tell', 'Hello World!');
        }
      };
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多