Недавно я создал навык Алекса 'загадка', и у меня возникли проблемы с высказываниями.Я создал намерение «GetRiddleIntent», а затем связал несколько высказываний, например, «убей меня» с этим намерением.Я не включил никаких слотов намерения.Когда я проверяю свое умение, я должен использовать имя вызова, чтобы получить результаты лямбды.
Встроенные намерения работают при вызове, например, «LaunchRequest» и «Amazon HelpRequest», но ни один из примеров высказываний для моего настраиваемого намерения не возвращает никаких результатов, я продолжаю получать сообщение «Возникла проблема с запрошенным ответом на навыки»"в результате.
Это для навыка загадки, реализуемого с использованием JAVA и ask-sdk V2.
Я попытался реализовать обработчик, отвечающий за загадки с нуля.
Отредактировал строку Загадки, чтобы убедиться, что в ней нет символов, которые могли бы вызвать какой-либо сбой ответа.
Перепутался с изменением "shouldEndSession" на true и на false (в настоящее время оно имеет значение false)
Я также скопировал ответ об ошибке из консоли разработчика в свои лямбда-конфигурации для более подробного журнала ошибок, и ничто не указывает конкретно на мой, скажем, код.Я получаю исключение 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 в качестве ответа в консоли разработки, но вместо этого получить сообщение «Возникла проблема с ответом запрошенного навыка».
Ниже приведена ошибка Ответ:
{
"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."
}
}
}