我正在尝试建立一个Alexa技能。当有意图请求时,我仍然试图让Alexa说些什么,但是我收到了一个错误,我不知道该怎么做。当我通过Alexa服务模拟器运行Sample Utterance时,我收到错误:
无法调用远程端点,或者它返回的响应无效。
如果我通过lambda测试事件运行相同的话语,我得到的错误是:
“errorMessage”:“异常:ReferenceError:未定义输出”
我的javascript代码是
exports.handler = (event, context) => {
try {
//New Session
if(event.session.new) {
console.log("NEW SESSION")
}
switch (event.request.type) {
//Launch Request
case "LaunchRequest":
console.log(`LAUNCH REQUEST`)
context.succeed(
generateResponse(
buildSpeechletResponse("Welcome to an Alexa Skill, this is running on a lambda function", true),
{}
)
)
break;
//Intent Request
case "IntentRequest":
console.log(`INTENT REQUEST`)
switch(event.request.intent.name) {
case "FindFlight":
//Get data from user to send to Fare Portal
//Clean up data to send back to user
context.succeed(
generateResponse(
buildSpeechletResponse("Flight Search", "You asked to find a flight", true),
{}
)
)
break;
default:
throw "Invalid intent"
}
break;
//Session Ended Request
case "SessionEndedRequest":
console.log(`SESSION ENDED REQUEST`)
break;
default:
context.fail(`INVALID REQUEST TYPE: ${event.request.type}`)
}
} catch(error) {context.fail(`Exception: ${error}`)}
//Helpers
buildSpeechletResponse = (title, outputText, shouldEndSession) => {
return {
outputSpeech: {
type: "PlainText",
text: outputText
},
card: {
type: 'Simple',
title: `SessionSpeechlet - ${title}`,
content: `SessionSpeechlet - ${output}`,
},
shoudlEndSession: shouldEndSession
}
}
generateResponse = (sessionAttributes, speechletResponse) => {
return {
version: "1.0",
sessionAttributes: sessionAttributes,
response: speechletResponse
}
}
}
非常感谢任何帮助,谢谢!
答案 0 :(得分:1)
这似乎是buildSpeechletResponse函数中的拼写错误:
content: `SessionSpeechlet - ${outputText}`,