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