我一直在尝试找出如何使AMAZON.YesIntent在触发另一个intent之后运行。我四处搜寻并尝试了不同的解决方案,但它们始终无法正常工作。

最佳答案

您可以从另一个意图处理程序调用任何处理程序。

alexa-nodejs-sdk v1
对于alexa-nodejs-sdk v1,您可以使用

'SomeOtherIntent': function() {
   // Do your stuff here

   // Now to call AMAZON.YesIntent intent handler
   this.emit('AMAZON.YesIntent');
}


alexa-nodejs-sdk v2
对于alexa-nodejs-sdk v2,您可以导入目标句柄函数(如果它在其他模块中)或直接调用它并传入handlerinput

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

   handle(handlerInput) {
      // Do your stuff here

      // Now to call AMAZON.YesIntent intent handler
      return amazonYesIntentHandler.handle(handlerInput);
   }
}

07-26 03:37