Почему мой навык Алекса не переходит к следующему намерению? - PullRequest
0 голосов
/ 03 апреля 2020

В моем навыке Alexa я в основном играю MP3-файл по запросу пользователя.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь перейти от моего запроса на запуск к моему намеренному запросу, он не позволит мне. Когда я как пользователь даю свой ответ после запроса на запуск, чтобы иметь возможность перейти к намеренному запросу, я не получаю ответа.

Это работает, если я go прямо на запрос о намерении.

'strict mode'

exports.handler = function(event, context) {
  // Sounds from s3
  var audio_lib = [ 
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/lxnonBu5-stand-tall-guardian-this-battle-is-lost-but-their-will-be-others+(1).mp3\"/>",
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/jd1RAcCC-guardians-are-measured-by-their-ability-to-come-back-from-defeat-so-stand-fight+(1).mp3\"/>", 
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/idzplXpH-you-have-the-fortitude-and-persistance-of-lord-salidin-you-can-tell-him-i-said-that+(1).mp3\"/>",
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/OMsDcbcE-fight-like-a-demon-for-these-zones-bring-your-friends-i-need-more-like-you+(1).mp3\"/>",
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/LVKANDtb-what-where-s-my-catharsis-boo-boooo+(1).mp3\"/>",
    "<audio src=\"https://caydedialogues.s3.us-east-2.amazonaws.com/are+you+trying+to+kill+me%2C+just+win.mp3\"/>",
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/seventh+column+(1).mp3\"/>",
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/you+can+fight+by+my+side+any+time+guardian+(1).mp3\"/>",
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/YEEEEEEEESS+(1).mp3\"/>",
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/you+may+be+defeated+but+you+must+never+surrender+(1)+(1).mp3\"/>",
    "<audio src=\"https://shaxxquotes.s3.us-east-2.amazonaws.com/was+that+all+of+them+that+was+all+of+them+(1).mp3\"/>"
    ];

  // Random chooser for one of the sounds
  var factIndex = Math.floor(Math.random() * audio_lib.length);
  var randomQuote = audio_lib[factIndex];
  let dialogues = {};
  // Intent management
  try {
    var request = event.request;

    if (request.type === "LaunchRequest") {
      dialogues.speechText = "Hey Guardian, try asking me for a quote by your favorite character!";
      context.succeed(buildResponse(dialogues));
    } else if ( request.type === "IntentRequest") {
      let name = request.intent.slots.Names.value;
      if (name === "Zavala") {
        dialogues.speechText = randomQuote;
        context.succeed(buildResponse(dialogues));
      } else if (name === "Cayde" || name === "Cayde six") {
        dialogues.speechText = randomQuote;
        context.succeed(buildResponse(dialogues));
      } else if (name === "shaxx") {
        dialogues.speechText = randomQuote;
        context.succeed(buildResponse(dialogues));
      } else if (name === "ikora") {
        dialogues.speechText = randomQuote;
        context.succeed(buildResponse(dialogues));
      } else if (name === "zavala") {
        dialogues.speechText = randomQuote;
        context.succeed(buildResponse(dialogues));
      } else if (name === "saladin") {
        dialogues.speechText = randomQuote;
        context.succeed(buildResponse(dialogues));
      }
      dialogues.repromptText = "Go ahead ask me for a quote.";
      context.succeed(buildResponse(dialogues));
      dialogues.endSession = false;           
    } 
  } catch(e) {
    context.fail("Excpetion: " + e);
  }
}

// Building response for the alexa using ssml tags as well
function buildResponse(dialogues) {
  var response = {
    version: 1.0,
    response: {
      outputSpeech: {
        type: "SSML",
        ssml: "<speak>" + dialogues.speechText + "</speak>"
      },
    shouldEndSession: dialogues.endSession
    }
  };

  if (dialogues.repromptText) {
    response.response.reprompt = {
      outputSpeech: {
        type: "SSML",
        ssml: "<speak>" + dialogues.repromptText + "</speak>"
      }
    };
  }

  return response;
}

1 Ответ

0 голосов
/ 05 апреля 2020

Вот пример, демонстрирующий обработку намерений из навыка Alexa с использованием Alexa Skills Kit SDK (v2) ,

И для получения дополнительной информации, проверьте this

...