Aws lambda Alexa lambda函数能够执行除自定义之外的所有意图吗?

Aws lambda Alexa lambda函数能够执行除自定义之外的所有意图吗?,aws-lambda,alexa,alexa-skills-kit,alexa-skill,Aws Lambda,Alexa,Alexa Skills Kit,Alexa Skill,当我在服务模拟器中测试启动(新会话)、未处理和Amazon默认意图(取消、帮助、停止)时,它们工作正常,但我编写的任何意图似乎都不工作。以下是测试意图的示例: var handlers = { 'NewSession': function() { this.emit(':tell', 'Hello'); 'Test': function() { this.emit(':tell','This intent is working'); }, 'Unhandled

当我在服务模拟器中测试启动(新会话)、未处理和Amazon默认意图(取消、帮助、停止)时,它们工作正常,但我编写的任何意图似乎都不工作。以下是测试意图的示例:

var handlers = {
'NewSession': function() {
    this.emit(':tell', 'Hello');

'Test': function() {
    this.emit(':tell','This intent is working');    
},     
'Unhandled': function() {
    this.emit(':tell','Sorry, I don\'t know what to do');    
},   
'AMAZON.HelpIntent': function(){
    this.emit(':ask', 'What can I help you with?', 'How can I help?');
},
'AMAZON.CancelIntent': function(){
    this.emit(':tell', 'Okay');
},
'AMAZON.StopIntent': function(){
      this.emit(':tell', 'Goodbye');
},


exports.handler = function(event,context){
var alexa = Alexa.handler(event,context);
alexa.registerHandlers(handlers);
alexa.execute();
};
用于以下目的的代码段:

 "intents": [
  {
    "name": "AMAZON.CancelIntent",
    "samples": []
  },
  {
    "name": "AMAZON.HelpIntent",
    "samples": []
  },
  {
    "name": "AMAZON.StopIntent",
    "samples": []
  },
  {
    "name": "ColorIntent",
    "samples": [],
    "slots": [
  {
    "name": "Test",
    "samples": [
      "Test me"
    ],
    "slots": []

无论我做什么,我都无法让测试意图起作用并返回“This intent is working”。请帮助!

可能是因为您的第一次调用总是由
NewSession
处理程序处理,然后该处理程序以“Hello”响应并结束会话。 我认为有两种方法可以激活您的
测试
处理程序,即让您的技能以“此意图有效”进行响应:

  • 通过使用
    this.emit(“:ask”,“Hello!接下来要做什么?”);
    结束
    NewSession
    处理程序,然后说出“Test me”,可以创建多回合对话
  • 你将
    NewSession
    处理程序替换为
    LaunchRequest
    处理程序,并使用“Alexa,告诉领结选取者测试我”来调用你的技能
  • 希望有帮助!:)


    顺便说一句,因为我还不能到处注释:您可以使用
    console.log('testhandler invoked')记录lambda的状态,例如用于调试;
    ,然后在AWS CloudWatch中查找日志。

    可能是因为您的第一次调用总是由
    NewSession
    处理程序处理,然后该处理程序以“Hello”响应并结束会话。 我认为有两种方法可以激活您的
    测试
    处理程序,即让您的技能以“此意图有效”进行响应:

  • 通过使用
    this.emit(“:ask”,“Hello!接下来要做什么?”);
    结束
    NewSession
    处理程序,然后说出“Test me”,可以创建多回合对话
  • 你将
    NewSession
    处理程序替换为
    LaunchRequest
    处理程序,并使用“Alexa,告诉领结选取者测试我”来调用你的技能
  • 希望有帮助!:)


    顺便说一句,因为我还不能到处注释:您可以使用
    console.log('testhandler invoked')记录lambda的状态,例如用于调试;
    ,然后在AWS CloudWatch中查找日志。

    代码和意图不完整。这是您在复制时遗漏的吗?例如:
    NewSession
    函数未被
    }
    意图也未关闭。您的代码和意图构建良好吗?是的,我随意复制和粘贴了,但都没有关闭括号应该匹配。代码和意图构建得很好,没有任何错误。将日志记录到代码中,并查看调用了哪个意图。如果没有错误,则无法提供帮助日志显示我是否将日志添加到代码中?代码和意图不完整。复制时是否遗漏了什么?例如:
    NewSession
    函数为否t closed by
    }
    intent也未关闭。您的代码和意图是否构建良好?是的,我随意复制和粘贴,但所有括号都应匹配。代码和意图构建良好,没有任何错误。请登录到您的代码,查看调用了哪个意图。无法为您提供帮助t error logsHow是否将日志添加到代码中?