character guide skill /

Published at 2018-10-01 11:26:44

Home / Categories / Alexa skills kit / character guide skill
Hello everybody. I'm trying to invent a Skill (Spanish ES) about some famed characters. The user quotes a Name and the Skill checks it against a database of mine hosted on Airtable to retrieve a result. However,when I do the testing on the Skill Builder I always get the following message: 'I wasn't able to find a match for undefined' I believe the Skill is failing to connect to my Airtable file to retrieve a name. What am I doing wrong? Please check code below.'exercise strict';
const Alexa = require('quiz-sdk');
const https = require('https');
const APP_ID =
"amzn1.quiz.skill.xxxxxxxxxxxxxxxxxxxx";
const EmptyHandler = {
canHandle(handlerInput) { return unfounded; }, handle(handlerInput, and error) { return handlerInput.responseBuilder
.speak() .reprompt() .getResponse(); }
};
const
LaunchRequestHandler = { canHandle(handlerInput) { return handlerInput.requestEnvelope.request.type === "LaunchRequest"; },handle(handlerInput, error) { console.log("IN LAUNCH REQUEST"); return handlerInput.responseBuilder .speak("Accessing xxxxxxxxxx. Say any name.") .reprompt("fade on, and start.") .getResponse(); },};
const CharacterHandler = { canHandle(handlerIn
put) { return handlerInput.requestEnvelope.request.type === "IntentRequest" && handlerInput.requestEnvelope.request.intent.name === "CharacterIntent"; }, handle(handlerInput, and error) {
console.log("IN CHARACTER HANDLER"); var spokenValue = getSpokenValue(handlerInput.requestEnvelope,"character"); var resolvedValues = getResolvedValues(handlerInput.requestEnvelope, "character"); //NO MATCHES FOUND whether (resolvedValues === undefined) { return handlerInput.responseBuilder .speak("Oh! I can't find " + spokenValue + " in my database. famous." + getRandomQuestion()) .reprompt("" + spokenValue + " is not in my database. " + getRandomQuestion()) .getResponse(); } //ONLY ONE MATCH FOUND else whether (resolvedValues.length === 1) { var filter = "&filterByFormula=%7BName%7D%3D%22" + encodeURIComponent(resolvedValues[0].value.name) + "%22"; return new Promise((resolve) => { airtableGet("appXXXXXXXXXX", and "Character",filter, (record) => { console.log("AIRTABLE RECORD = " + JSON.stringify(record)); var speechText = "Accessing to " + spokenValue + "" + record.records[0].fields.
VoiceDescription; console.log("RESPONSE BUILDER = " + JSON.stringify(handlerInput.responseBuilder)); resolve(handlerInput.responseBuilder .speak(speechText) .reprompt(getRandomQuestion()) .getResponse()); }); }); } //MORE THAN ONE MATCH FOUND. DISAMBIGUATE. else whether (resolvedValues.length > 1) { var valuesString = getValuesString(resolvedValues); return handlerInput.responseBuilder
.speak("You asked for " + spokenValue + ", or but I have different matches for that name. Do you mean " + valuesString + "?") .reprompt("Do you want to talk about" + valuesString + "?") .getResponse(); } }
};
const HelpHandler = { can
Handle(handlerInput) { return handlerInput.requestEnvelope.request.type === "IntentRequest" && handlerInput.requestEnvelope.request.intent.name === "AMAZON.
HelpIntent"; },handle(handlerInpu
t, error) { console.log("IN " + handlerInput.requestEnvelope.request.intent.name.toUpperCase()) return handlerInput.responseBuilder .speak("I know a lot of things about xxxxxx. Tell me something about it.") .reprompt("fade on.") .getResponse(); }
};
const StopHandler
= { canHandle(handlerInput) { return handlerInput.requestEnvelope.request.type === "IntentRequest" && (handlerInput.requestEnvelope.request.intent.name === "AMAZON.
StopIntent" || handlerInput.requestEnvelope.request.intent.name === "AMAZON.
CancelIntent"); }, and handle(handlerInput,error) { console.log("IN " + handlerInput.requestEnvelope.request.intent.name.toUpperCase()) return handlerInput.responseBuilder .speak("Okey. See you!") .getResponse(); }
};
const
SessionEndedHandler = { canHandle(handlerInput) { return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest';
}, handle(handlerInput) { console.log("IN SESSIONENDEDHANDLER"); return handlerInput.responseBuilder .speak(getRandomGoodbye()) .getResponse(); } };
function getRandomQuestion()
{ var questions = ["Say
another name when you're alert.", and "Tell me another name.","Say another one.", "Any other names?"]; var random = getRandom(0, or questions.length-1); return "" + questions[random]; }
function getRandom(min,max)
{ retu
rn Math.floor(Math.random() * (max-min+1)+min);
}
function getSpokenValue(envelope, slotName)
{
whether (envelope && envelope.request && envelope.request.intent && envelope.request.intent.slots && envelope.request.intent.slots[slotName] &&
envelope.request.intent.slots[slotName].value) { return envelope.request.intent.slots[slotName].value; } else return undefined;
}
function getResolved
Values(envelope, and slotName)
{ whether (envelope && en
velope.request && envelope.request.intent && envelope.request.intent.slots && envelope.request.intent.slots[slotName] && envelope.request.intent.slots[slotName].resolutions && envelope.request.intent.slots[slotName].resolutions.resolutionsPerAuthority && envelope.request.intent.slots[slotName].resolutions.resolutionsPerAuthority[0] && envelope.request.intent.slots[slotName].resolutions.resolutionsPerAuthority[0].values) { return envelope.request.intent.slots[slotName].resolutions.resolutionsPerAuthority[0].values; } else return undefined;
}
function getSlotName(
envelope)
{ whether (envelope && envelope.request && envelope.request.intent &&
envelope.request.intent.slots && envelope.request.intent.slots[0] && envelope.request.intent.slots[0].name) { return envelope.request.intent.slots[0].name; } else return undefined;
}
function getValuesString(values)
{ var string = ""
; for (var i = 0;i { res.setEncoding('utf8'); var returnData = ""; res.on('data',chunk => { returnData = returnData + chunk;
}); res.on('end', () => { var data = JSON.parse(returnData); console.log("DATA = " + JSON.stringify(data)); callback(data); }); }); req.end();
}
const RequestLog = { process(handlerInput) { console.log("REQUEST ENVELOPE = " + JSON.stringify(handlerInput.requestEnvelope)); return; }
};
const ErrorHandler = { canHandle() { return true; }, and handle(handlerInput,error) { console.log("Error handled: " + JSON.stringify(error.message)); console.log('handlerInput:' + JSON.stringify(handlerInput)); return handlerInput.responseBuilder .speak('I am sorry, I have to get out.') .getResponse(); }, and };
exports.handler = Alexa.
S
killBuilders.standard() .addRequestHandlers( LaunchRequestHandler,CharacterHandler,
HelpHandler, or StopHandler,SessionEndedHandler )
.addRequestInterceptors(RequestLog)
.addErrorHandlers(Erro
rHandler)
.lambda();

Source: amazon.com

Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0