SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Ing. Vicente G. Guzman
@LucioMSP
Creando mi primer Bot Application en VS 2017
Introducción
En todo proyecto, no solo del mundo desarrollo es de plena importancia conocer la estructura, puesto
que esta nos ayuda a levantar de forma correcta toda idea que se desea llevar a cabo.
Comencemos
Como se imaginarán, el primer paso es abrir Visual Studio y generar un nuevo proyecto, en donde
seleccionaremos la plantilla de aplicación bot (Bot Application). Asignémosle un nombre al proyecto, para
este ejemplo didáctico lo dejare como BotApplication.
Ing. Vicente G. Guzman
@LucioMSP
Estructura del Proyecto
Como lo mencione anteriormente debemos de familiarizarnos con la estructura del proyecto, para
comprender cómo funciona el bot, echémosle un vistazo a lo que se ha generado desde la plantilla.
Contamos:
 Con una serie de Propiedades y Referencias como las que tenemos en todos nuestros proyectos
de Visual Studio.
 Una carpeta App_Start que contiene el WebApiConfig.cs que está a cargo de las rutas de
nuestras opciones Bot y Json.
 Una carpeta Controllers, que contiene el MessagesController.cs que brinda los controladores
que procesarán las acciones de los usuarios.
 Una página web predeterminada como default.htm que aparecerá cuando ejecutemos nuestro
proyecto.
 Así mismo como una serie de archivos de configuración de los paquetes y WebApi.
Tal y como se generó podemos ejecutarlo, es decir, no necesitamos más para hacer que nuestro bot
funcione.
Ing. Vicente G. Guzman
@LucioMSP
MessageController.cs
Conozcamos un poco la lógica de nuestro bot, para esto ingresemos a la carpeta Controllers, y abramos
el archivo MessageController.cs, el cual es nuestra clase principal en nuestro proyecto. Echemos un
vistazo específicamente al siguiente método, el cual es quien brinda la magia:
/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
El método recibe un objeto Activity (también llamado activity) que se utiliza para la comunicación entre
el usuario y el bot. Esta actividad puede ser de diferentes tipos, entre ellos se encuentra el tipo de mensaje,
que contiene información enviada entre los dos extremos de la conversación.
Recordatorio: esta plantilla consiste en un bot que devuelve el número de caracteres del mensaje enviado
por el usuario.
Si la actividad que recibe el bot es de tipo mensaje, navegará a la clase RootDialog (carpeta Dialogs),
método MessageReceivedAsync | el cual obtendrá la longitud de caracteres que se ingresaron en el
campo de entrada, después generará una respuesta y se enviará de vuelta al usuario. Luego esperará a
que el usuario le envíe un mensaje nuevamente.
Si la actividad no es tipo de mensaje, se redirigirá a otra función del controlador que está a cargo de las
acciones que podemos predefinir para los diferentes tipos de actividades enviadas al bot.
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object>
result)
{
var activity = await result as Activity;
// calculate something for us to return
int length = (activity.Text ?? string.Empty).Length;
// return our reply to the user
await context.PostAsync($"You sent {activity.Text} which was {length}
characters");
context.Wait(MessageReceivedAsync);
}
Ing. Vicente G. Guzman
@LucioMSP
Ejecución
Entonces, ya hemos visto más arriba cómo se estructura un bot y cómo responde a los mensajes que
recibe del usuario. ¡Así que vamos a poner en marcha nuestro bot!
Al ejecutarlo, se abrirá una ventana del navegador que mostrará el archivo predeterminado htm.
Después de realizar lo anterior, pasemos a abrir el emulador de Framework Bot e ingresemos en la barra
de direcciones la siguiente ruta:
http://localhost: { Puerto en el que se está ejecutando }/api/messages
La cual quedaría de la siguiente manera para este ejemplo: http://localhost:3979/api/messages
Por el momento, no ingresemos nada en los campos de Microsoft App ID o Microsoft App Password
porque no hemos registrado nuestro bot en el Microsoft Bot Framework.
Ing. Vicente G. Guzman
@LucioMSP
Una vez conectado, aparecerá el mensaje "POST 200 [conversationUpdate]" en la pantalla derecha de la
aplicación. Esto significa que el bot está esperando que enviemos un mensaje.
Y aquí es donde hacemos nuestro típico saludo, ¡Hola Mundo!
Como podemos ver, nos responde con el número de caracteres que utilizamos, ¡genial!, ya con esto
hemos creado nuestro primer bot.
Para resumir, podemos concretar que este fue un proceso bastante simple, pero será más complejo a
medida que agreguemos nuevas características para hacerlo más inteligente.
En el siguiente articulo conoceremos el procedimiento de como publicar nuestro bot.

Más contenido relacionado

La actualidad más candente

Geogebra interacción con javascript
Geogebra   interacción con javascriptGeogebra   interacción con javascript
Geogebra interacción con javascriptlucimen
 
Objetosimpliciosjsp
ObjetosimpliciosjspObjetosimpliciosjsp
ObjetosimpliciosjspKatherineLG
 
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULARTUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULARMichellepRodriguez
 

La actualidad más candente (7)

Java servlets
Java servletsJava servlets
Java servlets
 
Geogebra interacción con javascript
Geogebra   interacción con javascriptGeogebra   interacción con javascript
Geogebra interacción con javascript
 
Objetosimpliciosjsp
ObjetosimpliciosjspObjetosimpliciosjsp
Objetosimpliciosjsp
 
2.1
2.12.1
2.1
 
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULARTUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
TUTORIAL DE COMO PONER UN VIDEO DE DIVERSAS FORMAS EN EL CELULAR
 
SEMINARIO
SEMINARIOSEMINARIO
SEMINARIO
 
Seminario cecytem
Seminario cecytemSeminario cecytem
Seminario cecytem
 

Similar a Creando mi primer bot application en Visual Studio 2017

Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAlberto Ruibal
 
C sharp manual[1]
C sharp manual[1]C sharp manual[1]
C sharp manual[1]Kalizbeth
 
Herramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePointHerramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePointgoreorti
 
Manual de android parte 1
Manual de android parte 1Manual de android parte 1
Manual de android parte 1ftriana5000
 
Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPablo Aguilera
 
ActionScript 3.0 GERMAN MIELES11-2
ActionScript 3.0 GERMAN MIELES11-2ActionScript 3.0 GERMAN MIELES11-2
ActionScript 3.0 GERMAN MIELES11-2caresucio
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KJuan Carlos Gonzales Vitte.
 

Similar a Creando mi primer bot application en Visual Studio 2017 (20)

Bot Application Warnings… [Solved]
Bot Application Warnings… [Solved]Bot Application Warnings… [Solved]
Bot Application Warnings… [Solved]
 
Practica adicional
Practica adicionalPractica adicional
Practica adicional
 
Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en Android
 
Js
JsJs
Js
 
C sharp manual
C sharp manualC sharp manual
C sharp manual
 
C sharp manual[1]
C sharp manual[1]C sharp manual[1]
C sharp manual[1]
 
C sharp manual
C sharp manualC sharp manual
C sharp manual
 
Herramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePointHerramientas para el desarrollo de aplicaciones SharePoint
Herramientas para el desarrollo de aplicaciones SharePoint
 
Getting Started with ChatBots
Getting Started with ChatBotsGetting Started with ChatBots
Getting Started with ChatBots
 
C sharp manual
C sharp manualC sharp manual
C sharp manual
 
Reporte bernardino melgarejo lugo
Reporte bernardino melgarejo lugoReporte bernardino melgarejo lugo
Reporte bernardino melgarejo lugo
 
Html investigacion
Html investigacionHtml investigacion
Html investigacion
 
Html investigacion
Html investigacionHtml investigacion
Html investigacion
 
El arsenal del microsoft bot framework
El arsenal del microsoft bot frameworkEl arsenal del microsoft bot framework
El arsenal del microsoft bot framework
 
DAM-S7.pptx
DAM-S7.pptxDAM-S7.pptx
DAM-S7.pptx
 
Manual de android parte 1
Manual de android parte 1Manual de android parte 1
Manual de android parte 1
 
Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier Aznar
 
ActionScript 3.0 GERMAN MIELES11-2
ActionScript 3.0 GERMAN MIELES11-2ActionScript 3.0 GERMAN MIELES11-2
ActionScript 3.0 GERMAN MIELES11-2
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
 
Clase numero 6
Clase numero 6Clase numero 6
Clase numero 6
 

Más de Vicente Gerardo Guzman Lucio

Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsVicente Gerardo Guzman Lucio
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaVicente Gerardo Guzman Lucio
 

Más de Vicente Gerardo Guzman Lucio (20)

GPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power AutomateGPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power Automate
 
Introducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptxIntroducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptx
 
Creando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdfCreando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdf
 
ChatGPT & Alexa.pptx
ChatGPT & Alexa.pptxChatGPT & Alexa.pptx
ChatGPT & Alexa.pptx
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Conectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa SkillConectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa Skill
 
Azure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web AssemblyAzure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web Assembly
 
Desarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa SkillsDesarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa Skills
 
Blazor vs VUE
Blazor vs VUEBlazor vs VUE
Blazor vs VUE
 
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
 
Diseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon AlexaDiseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon Alexa
 
Alexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS LambdaAlexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS Lambda
 
Skills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros PasosSkills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros Pasos
 
¿Qué es la Nube?
¿Qué es la Nube?¿Qué es la Nube?
¿Qué es la Nube?
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en Alexa
 
La era de los Chatbots
La era de los ChatbotsLa era de los Chatbots
La era de los Chatbots
 
Android 64x con Xamarin.Forms
Android 64x con Xamarin.FormsAndroid 64x con Xamarin.Forms
Android 64x con Xamarin.Forms
 
Creando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTubeCreando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTube
 
Alexa Skill en 5 pasos
Alexa Skill en 5 pasosAlexa Skill en 5 pasos
Alexa Skill en 5 pasos
 

Creando mi primer bot application en Visual Studio 2017

  • 1. Ing. Vicente G. Guzman @LucioMSP Creando mi primer Bot Application en VS 2017 Introducción En todo proyecto, no solo del mundo desarrollo es de plena importancia conocer la estructura, puesto que esta nos ayuda a levantar de forma correcta toda idea que se desea llevar a cabo. Comencemos Como se imaginarán, el primer paso es abrir Visual Studio y generar un nuevo proyecto, en donde seleccionaremos la plantilla de aplicación bot (Bot Application). Asignémosle un nombre al proyecto, para este ejemplo didáctico lo dejare como BotApplication.
  • 2. Ing. Vicente G. Guzman @LucioMSP Estructura del Proyecto Como lo mencione anteriormente debemos de familiarizarnos con la estructura del proyecto, para comprender cómo funciona el bot, echémosle un vistazo a lo que se ha generado desde la plantilla. Contamos:  Con una serie de Propiedades y Referencias como las que tenemos en todos nuestros proyectos de Visual Studio.  Una carpeta App_Start que contiene el WebApiConfig.cs que está a cargo de las rutas de nuestras opciones Bot y Json.  Una carpeta Controllers, que contiene el MessagesController.cs que brinda los controladores que procesarán las acciones de los usuarios.  Una página web predeterminada como default.htm que aparecerá cuando ejecutemos nuestro proyecto.  Así mismo como una serie de archivos de configuración de los paquetes y WebApi. Tal y como se generó podemos ejecutarlo, es decir, no necesitamos más para hacer que nuestro bot funcione.
  • 3. Ing. Vicente G. Guzman @LucioMSP MessageController.cs Conozcamos un poco la lógica de nuestro bot, para esto ingresemos a la carpeta Controllers, y abramos el archivo MessageController.cs, el cual es nuestra clase principal en nuestro proyecto. Echemos un vistazo específicamente al siguiente método, el cual es quien brinda la magia: /// <summary> /// POST: api/Messages /// Receive a message from a user and reply to it /// </summary> public async Task<HttpResponseMessage> Post([FromBody]Activity activity) { if (activity.Type == ActivityTypes.Message) { await Conversation.SendAsync(activity, () => new Dialogs.RootDialog()); } else { HandleSystemMessage(activity); } var response = Request.CreateResponse(HttpStatusCode.OK); return response; } El método recibe un objeto Activity (también llamado activity) que se utiliza para la comunicación entre el usuario y el bot. Esta actividad puede ser de diferentes tipos, entre ellos se encuentra el tipo de mensaje, que contiene información enviada entre los dos extremos de la conversación. Recordatorio: esta plantilla consiste en un bot que devuelve el número de caracteres del mensaje enviado por el usuario. Si la actividad que recibe el bot es de tipo mensaje, navegará a la clase RootDialog (carpeta Dialogs), método MessageReceivedAsync | el cual obtendrá la longitud de caracteres que se ingresaron en el campo de entrada, después generará una respuesta y se enviará de vuelta al usuario. Luego esperará a que el usuario le envíe un mensaje nuevamente. Si la actividad no es tipo de mensaje, se redirigirá a otra función del controlador que está a cargo de las acciones que podemos predefinir para los diferentes tipos de actividades enviadas al bot. private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result) { var activity = await result as Activity; // calculate something for us to return int length = (activity.Text ?? string.Empty).Length; // return our reply to the user await context.PostAsync($"You sent {activity.Text} which was {length} characters"); context.Wait(MessageReceivedAsync); }
  • 4. Ing. Vicente G. Guzman @LucioMSP Ejecución Entonces, ya hemos visto más arriba cómo se estructura un bot y cómo responde a los mensajes que recibe del usuario. ¡Así que vamos a poner en marcha nuestro bot! Al ejecutarlo, se abrirá una ventana del navegador que mostrará el archivo predeterminado htm. Después de realizar lo anterior, pasemos a abrir el emulador de Framework Bot e ingresemos en la barra de direcciones la siguiente ruta: http://localhost: { Puerto en el que se está ejecutando }/api/messages La cual quedaría de la siguiente manera para este ejemplo: http://localhost:3979/api/messages Por el momento, no ingresemos nada en los campos de Microsoft App ID o Microsoft App Password porque no hemos registrado nuestro bot en el Microsoft Bot Framework.
  • 5. Ing. Vicente G. Guzman @LucioMSP Una vez conectado, aparecerá el mensaje "POST 200 [conversationUpdate]" en la pantalla derecha de la aplicación. Esto significa que el bot está esperando que enviemos un mensaje. Y aquí es donde hacemos nuestro típico saludo, ¡Hola Mundo! Como podemos ver, nos responde con el número de caracteres que utilizamos, ¡genial!, ya con esto hemos creado nuestro primer bot. Para resumir, podemos concretar que este fue un proceso bastante simple, pero será más complejo a medida que agreguemos nuevas características para hacerlo más inteligente. En el siguiente articulo conoceremos el procedimiento de como publicar nuestro bot.