亚马逊Alexa错误

时间:2017-11-12 21:49:50

标签: javascript amazon-web-services aws-lambda alexa alexa-skills-kit

我正在尝试建立一个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
    }
  }
}

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎是buildSpeechletResponse函数中的拼写错误:

content: `SessionSpeechlet - ${outputText}`,