Está en la página 1de 7

UMG INTELIGENCIA ARTIFICIAL

5). Responder mensajes con Messenger


Ahora vamos a responder el mensaje. Debemos crear dos funciones: Con la primera, vamos a leer
el mensaje, extraer la información y decidir cómo actuar o responder frente a este, mientras que
en la segunda vamos a crear el objeto (respuesta) que enviaremos a nuestros usuarios.

1). Creamos en la parte superior de nuestro código en app.js una variable para almacenar el token

const access_token =
"SU-TOKEN";

2) Creamos 2 funciones para leer el mensajes y para responderá automáticamente

//a funcion manejador de mensajes


//recibe nuestro evento y vamos a extraer dos cosas muy particulares
//quien esta enviando el mensaje y el mensaje que hemos recibido
function handleMessage(event) {
const senderId = event.sender.id;
const messageText = event.message.text;
//creamos un objeto que va a contener la información que recibe y se envia
ra
//a la api que se va a conectar con la api de face para enviar
//respuesta al usuario
const messageData = {
recipient: {
id: senderId
},
message: {
text: messageText //Repita lo que estamos recibiendo para probar
}
};

//Funcion que va a ser encargada de enviar información al bot


callSendApi(messageData); //recibe el objeto creado
}

//Esta funcion sera nuestro core de la aplicacion para enviar mensajes


function callSendApi(response) {
//con request vamos a poder enviar información a nuesta aplicacion
request(
{
uri: "https://graph.facebook.com/me/messages",
// uri: "https://graph.facebook.com/v2.11/107573024188814/messages",
qs: {
access_token: access_token
UMG INTELIGENCIA ARTIFICIAL
//asignamos la constante declarada arriba
},
//decimos porque método vamos a enviar la información
method: "POST",
json: response
},
//funcion para ver si no tiene errores
function(err) {
if (err) {
console.log("Ha ocurrido un error");
} else {
console.log("Mensaje enviado");
}
}
);
}

3) Cambiamos una línea de código en la función del Webook

//console.log(event); //imprimimos el evento (esta comentaríamos o cambiamos)


//cambiamos la forma de imprimir para que ahora llame a nuestra funcion
handleMessage(event);

4). Probar (eliminar conversación de Messenger, buscar nuevamente el bot y probar enviar un
mensaje)

Asegurarnos que está corriendo nuestro express nodemon y el webhook (vistos en clase
anterior)

6). Añadir integración de Bienvenida


Creamos un mensaje de bienvenida.
Fortalecemos a nuestro bot de la empatía que necesita para empezar una conversación con los
usuarios.
a). ya que tenemos con vida el bot vamos a construir la aplicación de ia_pizza
b). debemos hacer unas pequeñas configuraciones que no van en nuestro código, lo vamos a
enviar por medio de curl (curl es una librería, que tiene funciones muy específicas para conectar
con servidores y trabajar con ellos), vamos a configurar estas opciones que le darán vida a nuestro
bot
UMG INTELIGENCIA ARTIFICIAL
c). vamos a empezar añadiendo el botón empezar (para que cuando un usuario entre a interactuar
con el bot lo haga iniciando la conversación)
d). para que los usuarios conozcan que ofrece nuestro bot vamos agregar un mensaje de
bienvenida, un mensaje que le va a decir que hace nuestro bot (esto lo haremos con curl)
e). vamos a crear un archivo nuevo (no se graba, solo armamos y lo enviamos por consola)

curl -X POST -H "Content-Type: application/json" -d '{


"get_started": {"payload": "GET_STARTED_IAPIZZA"}
}' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=SU_TOKEN"

-d es el objeto que vamos a enviar


-get_started = opción de habilitar
-payload = recibe la opción que nosotros vamos a detectar (cuando el usuario le dé al botón
iniciar ahora)
"GET_STARTED_IAPIZZA" //Con esto ya sabemos cómo se llama
--https..... // lo mandamos a la api de facebook
YOUR_TOKEN = token de las primeras líneas de código del archivo app.js o su token de face
Lo ejecutamos en el cmd

Ó en gitbash
UMG INTELIGENCIA ARTIFICIAL
Los pasos extra que hay que hacer para que funcione en Windows son:
 Descargar curl
 Descomprimirlo y guardarlo en la carpeta donde tenemos todo el proyecto (en este caso iapizza)
 Copiar el código en la terminal y ejecutarlo
Tiene que salir result: succes

Como ya vimos que si tenemos conexión al server y la api, modificamos con un mensaje para la
bienvenida.

curl - X POST - H "Content-Type: application/json" - d '{

"greeting": [{

"locale": "default",

"text": "Hola {{user_first_name}} soy IApizza y atiendo IApizza te invito a conocer nuestras
geniales 🐶 Pizzas 🍕.!"

}, {

"locale": "en_US",

"text": "Hello {{user_first_name}} soy IApizza y atiendo IApizza te invito a conocer nuestras
geniales 🐶 Pizzas 🍕.!"

}]

' https://graph.facebook.com/v2.6/me/messenger_profile?access_token=SU-TOKEN

7). Menú

curl -X POST -H "Content-Type: application/json" -d '{

"persistent_menu": [{

"locale": "default",

"composer_input_disabled": false,

"call_to_actions": [{

"title": "🍕 IAPizza ",


UMG INTELIGENCIA ARTIFICIAL
"type": "nested",

"call_to_actions": [{

"title": "Acerca",

"type": "postback",

"payload": "ABOUT_PAYLOAD"

},

"title": "💚 Menu de Productos",

"type": "nested",

"call_to_actions": [{

"title": "Pizzas",

"type": "postback",

"payload": "PIZZAS_PAYLOAD"

},

"type": "web_url",

"title": "🐶 Pagina Web",

"url": "https://littlecaesars.com/en-us//",

"webview_height_ratio": "full"

}]

' https://graph.facebook.com/v2.6/me/messenger_profile?access_token=SU-TOKEN
UMG INTELIGENCIA ARTIFICIAL

8). Manejo de eventos


Vamos a manejar los eventos, en otras palabras, vamos a recibir el mensaje de nuestros usuarios,
analizarlo y contestarlo. Vamos a crear los métodos necesarios para contestar un mensaje
Según lo que recibimos vamos a tomar una acción
Si es texto, si es una respuesta rápida, si es un post back

a), creamos una nueva función


//creamos una función para manejar métodos
function handleEvent(senderId, event){
if(event.messageText){ //si es un mensaje de texto que estamos recibiendo
handleMessage(senderId, event.messageText)//lo manda a la funcion que
muestra texto
}
}
b)
b). //creamos la función para recibir el texto
function handleMessage(senderId, event) {
if (event.text) {
//si recibe un texto lo mandamos a una función default
defaultMessage(senderId);
}
}

c)
//creamos la función default
function defaultMessage(senderId) {
//Vamos a construir un objeto que vamos a enviar como respuesta
const messageData = {
recipient: {
id: senderId
},
message: {
text: "Hola soy un bot de messenger y te invito a utilizar nuestro men
u"
}
};
UMG INTELIGENCIA ARTIFICIAL
callSendApi(messageData); //tenemos que hacer el llamado a nuetra api, asi
le respondera al usuario
}

d) modificamos nuestro webhook para que llame a la nueva función

También podría gustarte