Aws lambda Alexa lambda函数能够执行除自定义之外的所有意图吗?
当我在服务模拟器中测试启动(新会话)、未处理和Amazon默认意图(取消、帮助、停止)时,它们工作正常,但我编写的任何意图似乎都不工作。以下是测试意图的示例: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
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是否将日志添加到代码中?