如何触发自定义意图的响应?

时间:2019-02-02 12:25:00

标签: java amazon-web-services aws-lambda aws-sdk

我最近创建了Alexa的“谜语”技能,但在发声方面遇到了麻烦。我创建了一个意图“ GetRiddleIntent”,然后关联了一些话语,例如用这个意图“让我困惑”。我没有包含任何意图插槽。测试技能时,必须使用调用名称才能从lambda返回结果。

内置意图在调用时起作用“ LaunchRequest”和“ Amazon HelpRequest”,但针对我的自定义意图的所有示例话语均未返回任何结果,因此,我不断收到“请求的技能响应存在问题”。

这是使用JAVA和ask-sdk V2实现的一个谜语技能。

我尝试从头开始实现负责谜语的处理程序。

编辑了Riddle字符串,以确保没有任何字符可能导致任何响应失败。

沉迷于将“ shouldEndSession”更改为true和false(当前将其设置为false)

我还将来自开发人员控制台的错误响应复制到了我的lambda配置中,以获取更详细的错误日志,并且没有任何内容专门针对我的说法。我得到一个java.lang.NullPointerException指向内置库中的错误,例如com.amazon.ask.SkillStreamHandler.handleRequest(SkillStreamHandler.java:71)

我还查看了V2中的以下示例技能以寻求帮助,但没有一个帮助。 https://github.com/alexa/alexa-skills-kit-sdk-for-java/tree/2.0.x/samples

package lambda.riddle.handlers;

import static com.amazon.ask.request.Predicates.intentName;

import java.util.Optional;

import com.amazon.ask.dispatcher.request.handler.HandlerInput;
import com.amazon.ask.dispatcher.request.handler.RequestHandler;
import com.amazon.ask.model.Response;

import riddle_generator.Riddle;
import riddle_generator.GenerateRiddles;



public class GetRiddleIntentHandler implements RequestHandler 
{
  public boolean canHandle(HandlerInput input)
  {
    return input.matches(intentName("GetRiddleIntent"));
  }

  @Override
  public Optional<Response> handle(HandlerInput input) 
  {

    String speechText, repromptText;

    speechText = "I am caucasian, internet famous and best known for my catchphrase, catch me outside how about that. Who am I?";
    repromptText = "I am caucasian, internet famous and best known for my catchphrase, catch me outside how about that. Who am I?";
    return input.getResponseBuilder()
        .withSimpleCard("RiddleSession", speechText)
        .withSpeech(speechText)
        .withReprompt(repromptText)
        .withShouldEndSession(false)
        .build();
  }
}

我应该在开发控制台中获得SpeechText作为响应,但是会收到“请求的技能的响应存在问题”消息。

Lambda Console Error Log

Developer console output

以下是错误响应:

{
  "request": {
        "type": "SessionEndedRequest",
        "requestId": "amzn1.echo-api.request.338924d9-8cf9-448a-85a2-6a8bacc5e1be",
        "timestamp": "2019-02-02T12:01:04Z",
        "locale": "en-GB",
        "reason": "ERROR",
        "error": {
            "type": "INVALID_RESPONSE",
            "message": "An exception occurred while dispatching the request to the skill."
        }
    }
}

0 个答案:

没有答案