Alexa отправляет SessionEndedRequest по таймауту, а затем отображает карту ошибки для пользователя - PullRequest
0 голосов
/ 21 марта 2019

Во время тестирования моего навыка, если я не отвечаю и время ожидания истекает, Alexa отправляет SessionEndedRequest в мою функцию Lambda.

На основе этих документов: Обработка запросов, отправленных Alexa :

Ваша служба не может отправить ответ на SessionEndedRequest.

Поэтому я не отвечаю на эти запросы.

Но тогда мое приложение показываеткарта с этим сообщением:

Ответ навыка был помечен как отказ
(Имя навыка)

Идентификатор запроса: amzn1.echo-api.request.xxxxxxxxxxxxxxxxxxxxx

Целевое лямбда-приложение вернуло сообщение об ошибке

Так что мы должны обработать этот запрос, который не дает ответа и не приводит к этой ошибке?

Я использую Node.js в Lambda, но Python-ответ тоже подойдет.

1 Ответ

1 голос
/ 22 марта 2019

Вы уверены, что ошибка в карточке была только для SessionEndedRequest?

Как правило, даже если вы отправляете ответ в Alexa для SessionEndedRequest, о нем не говорят.

Вы можете обработать SessionEndedRequest как это в ask-nodejs-sdk-v2.

const SessionEndedRequestHandler = {
  canHandle(handlerInput) {
    console.log("Inside SessionEndedRequestHandler");
    return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest';
  },
  handle(handlerInput) {
    console.log(`Session ended with reason: ${JSON.stringify(handlerInput.requestEnvelope)}`);
    return handlerInput.responseBuilder.getResponse();
  },
};
...