В моем навыке 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;
}