Alexa навык проблема с ответом после того, как ответ уже возвращен - PullRequest
0 голосов
/ 05 декабря 2018

Я работаю над навыком Alexa, который требует многоэтапного диалога, в котором пользователь должен ответить на несколько вопросов подряд.Я пытаюсь начать работу, добавив подсказку для одного слота, проверив, подтвержден ли слот, и возвращая ответ с addElicitSlotDirective, если это не так:

Вот весь обработчик запроса:

const isIntentRequest = require('../utils/isIntentRequest');
const sound = require('../utils/sound');
const loadUser = require('../utils/loadUser');
const loadWordByIndex = require('../utils/loadWordByIndex');

module.exports = {
  canHandle(handlerInput) {
    return isIntentRequest(handlerInput, 'NewWordPathIntent');
  },

  async handle(handlerInput) {
    const user = await loadUser(handlerInput);
    const { wordIndex } = user;
    const word = await loadWordByIndex(wordIndex);
    const slots = handlerInput.requestEnvelope.request.intent.slots;

    if(!hasAnswered('NewWordEnglishAnswer')) {
      return handlerInput.responseBuilder
        .speak('New Word English Answer word ' + word)
        .reprompt('New Word English Answer word ' + word + ' reprompt')
        .addElicitSlotDirective('NewWordEnglishAnswer')
        .getResponse();
    }

    return handlerInput.responseBuilder
      .speak('You answered the new word english question')
      .getResponse();

    function hasAnswered(slotName) {
      const slot = slots[slotName];
      if(!slot) throw new Error(`Invalid answer slot: "${slotName}"`);
      return slot.confirmationStatus === 'CONFIRMED';
    }
  },
};

Кажется, это в основном работает.Когда это намерение обрабатывается, Алекса отвечает: New Word English Answer word evidence, что правильно, но затем она немедленно следует за ним с There was a problem with the requested skill's response и убивает сеанс.

Alexa dialog

Почему это происходит?Если ответ выводится, какова проблема с ответом?

1 Ответ

0 голосов
/ 12 августа 2019

Используйте console.log для записи вещей в журнал и настройте свое умение использовать Amazon CloudWatch Logs для просмотра журнала.Даже если вы сами не будете писать заявления в console.log, там будет информация о «проблеме с ответом на запрошенный навык».Даже без этого вы часто можете получить информацию о проблеме, если для проверки своих навыков вы используете вкладку Тест консоли разработчика Alexa.Он может показать вам что-то во входных данных JSON или в выходных данных JSON, что даст вам подсказку.

...