Alexa Skills Kit: Как вызвать пользовательское намерение из другого намерения в ASK SDK V2 - PullRequest
0 голосов
/ 18 мая 2018

Привет, я использую и развиваю навыки на Алексе уже несколько месяцев.Недавно я обновился до версии Ask SDK 2. Я нахожу все классным и застрял нигде.

Я не смог найти способ испустить намерение сейчас.Как и раньше, мы могли вызывать Intent из другого Intent следующим образом:

this.emitWithState(<intent name here>);

Кто-нибудь знает, как этого добиться в Ask SDK V2?

Любая помощь будет высоко оценена.

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Сделай как

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

    // some code
    return SecondIntentHandler.handle(handlerinput);
  },
};
0 голосов
/ 06 марта 2019

Если в модели взаимодействия вашего навыка есть диалоговая модель, вы можете сделать это с помощью цепочки намерений.Цепочка намерений позволяет вашему коду навыка запускать управление диалогом с любого намерения, включая 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

0 голосов
/ 19 мая 2018

Простое выполнение

this.emit(<intent_name>)

будет работать.

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

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