Daniel Alvarez
Senior Software Engineer. Android, iOS, Firebase.
SUCRE - 2016
Nuestro Backend
Bot
controller.hears(
['gato', 'gatos', 'gatito', 'gatitos'],
['ambient', 'direct_message', 'direct_mention', 'mention'],
function (bot, message) {
bot.startConversation(message, function (err, convo) {
if (err) {
console.log(err)
return
}
convo.ask('¿Quiéres que te envie gatitos? Dime SI o NO.', [
{
pattern: bot.utterances.yes,
callback: function (response, convo) {
convo.say('¡Genial!')
convo.ask('¿Cuantos?', [
{
pattern: '[0-9]+',
callback: function (response, convo) {
var numCats =
parseInt(response.text.replace(/[^0-9]/g, ''), 10)
if (numCats === 0) {
convo.say({
'text': 'Lo siento pero yo no puedo enviarte cero gatos. ' +
'Toma un perro. :dog:',
'attachments': [
{
'fallback': 'Chihuahua Bubbles - https://youtu.be/s84dBopsIe4',
'text': '<https://youtu.be/s84dBopsIe4|' +
'Chihuahua Bubbles>!'
}
]
})
} else if (numCats > maxCats) {
convo.say('Lo siento, ' + numCats + ' es muchos gatos.')
} else {
var catMessage = ''
for (var i = 0; i < numCats; i++) {
catMessage = catMessage +
catEmojis[Math.floor(Math.random() * catEmojis.length)]
}
convo.say(catMessage)
}
convo.next()
}
},
{
default: true,
callback: function (response, convo) {
convo.say(
"Mmmmm no te entiendo. Ingresa un número, por favor.")
convo.repeat()
convo.next()
}
}
])
convo.next()
}
},
{
pattern: bot.utterances.no,
callback: function (response, convo) {
convo.say('Bueno, quizás luego.')
convo.next()
}
},
{
default: true,
callback: function (response, convo) {
// Repeat the question.
convo.repeat()
convo.next()
}
}
])
})
})
Google Cloud Vision
Google Places
API Temperatura
By Daniel Alvarez
Slides para la presentación Sucre 2016