Ошибка неверного ответа с Alexa SDK v2 - PullRequest
0 голосов
/ 02 мая 2018

Уже 2 дня у меня проблема с тем, что моя лямбда-функция, использующая ask-sdk-core v2.0.2, возвращает неверные ответы.

Очень простая настройка:

HelloIntent обрабатывается HelloIntentHandler:

const HelloIntentHandler = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'HelloIntent';
    },
    handle(handlerInput) {
        const speechText = 'Hello back';

        return handlerInput.responseBuilder
            .speak(speechText)
            .reprompt(speechText)
            .getResponse();
    }
};

Когда я вызываю это намерение, симулятор переходит прямо к:

Возникла проблема с ответом запрошенного навыка

Используя ErrorHandler, я проверил, и результаты handlerInput.requestEnvelope.request.error:

{ type: 'INVALID_RESPONSE',
message: 'An exception occurred while dispatching the request to the skill.' }

Вопрос: В чем здесь проблема? Когда я открываю навык, используя имя вызова, LaunchRequestHandler вызывается и отвечает правильно, но любое другое намерение не работает.

1 Ответ

0 голосов
/ 02 мая 2018

Хорошо, я обнаружил проблему, ее трудно вывести из вышеуказанной ошибки:

canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'IntentRequest'
        && handlerInput.requestEnvelope.request.intent.name === 'HelloIntent';
},

В функции canHandle необходимо проверить тип запроса и имя намерения.

...