Bot Application Warnings… [Solved]

Vicente Gerardo Guzman Lucio
My Bots Latam
Published in
3 min readAug 27, 2018

Introducción

Todo proyecto normalmente cuenta con detalles que generan conflictos, que a su vez detienen su funcionamiento óptimo, y si, aunque se hagan siguiendo algún manual o tutorial.

Anteriormente aprendimos a crear nuestro primer Bot Application utilizando Visual Studio 2017, el cual si le prestamos atención en el emulador nos mostro dos “Warning”:

Estos se deben de aclarar para poder realizar el siguiente paso, el cual es publicar nuestro bot, por ende, son de vital importancia así que veamos cómo resolver cada uno.

Warning: The Bot Framework State Service API is not recommended for production environments, and may be deprecated in a future release.

Para resolver nuestra primera advertencia, podemos leer la documentación que se visualiza en el log del emulador al lado del “warning” >

Si damos clic, nos abrirá una pestaña en nuestro navegador, la cual al leerla nos da a entender que la solución es guardar los datos de estado con BotBuilder-Azure, esta misma nos brinda los pasos a seguir para erradicar susodicha advertencia, los cuales indicare aquí mismo.

Primero tomemos en cuenta que el almacenamiento de datos en memoria está destinado solo a pruebas, este almacenamiento es volátil y temporal, entonces los datos se borran cada vez que se reinicia el bot.

Para utilizar el almacenamiento en memoria deberemos instalar los siguientes paquetes NuGet:

· Autofac.WebApi2

· Microsoft.Bot.Builder.Azure

El Connector State Service del Bot Framework se creó para garantizar que los bots desarrollados con Microsoft Bot Framework puedan realizar un seguimiento del estado de la conversación mientras el bot en sí no tiene estado. Dicho servicio le permite a nuestro bot almacenar y recuperar datos de usuario, datos de conversación, una conversación o un usuario específico dentro del contexto de una conversación.

Una vez realizado lo anterior, deberemos editar el método Application_Start, el cual se encuentra en el archivo Global.asax.cs

Lo primero que haremos será crear una nueva instancia del almacenamiento en memoria y registrar el nuevo almacén de datos, de tal forma que quede de la siguiente manera:

protected void Application_Start()

{

var store = new InMemoryDataStore();

Conversation.UpdateContainer(

builder =>

{

builder.Register(c => store)

.Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)

.AsSelf()

.SingleInstance();

builder.Register(c => new CachingBotDataStore(store,

CachingBotDataStoreConsistencyPolicy

.ETagBasedConsistency))

.As<IBotDataStore<BotData>>()

.AsSelf()

.InstancePerLifetimeScope();

});

GlobalConfiguration.Configure(WebApiConfig.Register);

}

Con esto habremos terminado y nuestra primera advertencia habrá quedada resuelta.

Warning: The latest bot SDK version is 3.16.0 but the bot is running SDK version 3.8.0. Consider upgrading the bot to the latest SDK.

Tal y como lo imaginamos, para aclarar esta advertencia solo deberemos de actualizar los paquetes NuGet, recordemos que solo es dar clic secundario sobre Referencias (References) y seleccionar Manage NuGet Packages.

Y en la pantalla de Actualizaciones (Updates) seleccionar el Microsoft.Bot.Builder

Procedamos a ejecutar nuestro Bot Application y repitamos los pasos vistos en el artículo anterior para visualizar nuestro bot emulator, el cual nos debe de aparecer como el siguiente:

Con esto habremos cumplido la finalidad de esta entrada, espero les haya funcionado, cualquier duda o comentario, los invito a que me lo transmitan por este medio.

Mas información: Manage State Data

Descarga el código completo desde mi GitHub.

https://github.com/LucioMSP/Bots.Examples/tree/master/BotApplication_Warnings

¡Hasta la próxima!

--

--