Per avere una maggiore interazione utente Alexa puo' terminare la propria frase con una domanda e rimanere in attesa di una risposta da parte dell'utente
Questa fase e' gestita tramite la direttiva reprompt e si possono usare le BuildIntents Yes e No quando e' sufficiente che l'utente interagisca in modo affermativo o negativo
Per esempio partendo da un custom intent si puo' aggiungere il reprompt
===========================================
const geo = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return (request.type === 'IntentRequest'
&& request.intent.name === 'geo');
},
async handle(handlerInput) {
const response = await httpGet();
//console.log("Risposta "+response);
const { intent } = handlerInput.requestEnvelope.request;
const activity = intent.slots.luogo.value;
var speechOutput = response;
if (activity == "firenze")
{
speechOutput = "_______________";
//console.log("Speechout firenze"+ speechOutput+data);
}
if (activity == "milano")
{
speechOutput = "_______________";
}
console.log(activity);
return handlerInput.responseBuilder
.speak(speechOutput)
.reprompt("Vuoi la spiegazione del messaggio?")
.getResponse();
},
};
===========================================
Si aggiunge quindi il buildinten Yes
-------------------------------------------------
{
"name": "AMAZON.YesIntent",
"samples": []
}
-------------------------------------------------
a questo punto per gestire la eventuale risposta positiva si aggiunge alla lambda
--------------------------------------------------
const YesHandler = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return request.type === 'IntentRequest'
&& request.intent.name === 'AMAZON.YesIntent'
},
handle(handlerInput) {
return handlerInput.responseBuilder
.speak("Speigazione")
.getResponse();
},
};
--------------------------------------------------
si deve infine aggiungere lo YesHandler
---------------------------------------------------
const skillBuilder = Alexa.SkillBuilders.standard();
exports.handler = skillBuilder
.addRequestHandlers(
LaunchRequestHandler,
YesHandler,
geo,
HelpHandler,
ExitHandler,
SessionEndedRequestHandler
)
.addErrorHandlers(ErrorHandler)
.lambda();