【问题标题】:Amazon Alexa error亚马逊 Alexa 错误
【发布时间】:2018-04-25 13:10:02
【问题描述】:

我正在尝试构建 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
    }
  }
}

任何帮助将不胜感激!

【问题讨论】:

  • 第二个错误很清楚:output 确实没有定义。因此,您需要使用已定义的变量,或者继续定义output

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


【解决方案1】:

这似乎是 buildSpeechletResponse 函数中的错字:

content: `SessionSpeechlet - ${outputText}`,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多