Alexa Skills Kit:如何从ASK sdk V2中的另一个意图调用自定义意图

时间:2018-05-18 12:15:13

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

大家好几个月以来,我一直在使用和开发Alexa的技能。最近我更新了问题sdk版本2.我发现一切都很酷并且无处可去。

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

this.emitWithState(<intent name here>);

有人知道如何在sdk V2中实现这个目标吗?

任何帮助都将受到高度赞赏。

3 个答案:

答案 0 :(得分:3)

按照

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

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

答案 1 :(得分:0)

如果技能的交互模型具有对话模型,则可以通过意图链接来完成上述操作。通过意图链,您的技能代码可以从任何意图开始对话管理,包括 LaunchRequest 。您可以使用Dialog.Delegate链接意图,如下所示:

.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

答案 2 :(得分:-2)

简单地做

this.emit(<intent_name>)

会奏效。

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

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