当我在服务模拟器中测试时,启动(新会话),未处理和亚马逊默认意图(取消,帮助,停止)正常工作,但我写的任何一个似乎都不起作用。以下是测试意图的示例:
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": []
无论我做什么,我都无法让测试意图工作并返回"这个意图正在发挥作用。请帮忙!
答案 0 :(得分:2)
也许是因为你的第一次调用总是由NewSession
处理程序处理,然后处理程序以“你好”的方式响应。并结束会议。
我认为有两种方法可以激活您的Test
处理程序,即让您的技能回复'此意图正在运行':
NewSession
结束this.emit(':ask', 'Hello! What do you want to do next?');
处理程序,然后说出“测试我”来创建多回合对话。NewSession
处理程序替换为LaunchRequest
处理程序,并使用' Alexa调用您的技能,告诉领带选择器测试我'。希望有所帮助! :)
顺便说一句,因为我无法在任何地方发表评论:你可以记录你的lambda状态,例如:用于调试,使用console.log( 'Test handler invoked');
,然后在AWS CloudWatch中查找日志。