Configurar el Tunneling (ngrok) con Microsoft Bot Framework Emulator
Si estás aquí, se presupone que es porque has creado ya un Bot con Microsoft Bot Framework y tienes problemas intentando probar tu Bot con el Microsoft Bot Framework Emulator
Lo primero de todo es tener claro que has creado tu Bot y que funciona correctamente. Llegados a este punto, es posible que queramos ejecutar el emulador de Bot Framework para jugar con el Bot.
En mi caso, he desplegado mi Bot en Azure y jugando con él, veo que desde el portal de desarrollador de Bot Framework funciona todo correctamente.
Sin embargo, cuando me voy al emulador e intento hacer lo mismo, el emulador me devuelve un error.
Si voy a la Wiki oficial de Microsoft de la configuración del Tunneling (ngrok), veo que la información que aparece allí, está incompleta. Por eso, me he animado a escribir esta información aquí para que sirva de ayuda a quién se enfrente con este problema.
El caso es que cuando ejecuto mi Bot en el emulador, en mi caso es remoto (Azure) y el callback es localhost, por lo que no puede establecer una conexión válida entre los dos extremos. Para resolverlo me invita a hacer un tunneling.
Para ello, me brinda la posibilidad de utilizar una herramienta denominada ngrok. Para lo cual me pide configurarla.
Aquí empieza realmente la solución a nuestro problema.
Lo primero de todo será descargar esta herramienta, que no deja de ser una herramienta de comandos.
Accederemos por lo tanto a la web de ngrok para descargar esta herramienta en su apartado Download.
Descargaremos la utilidad y descomprimiremos la misma en una carpeta que consideremos adecuada.
Una vez hecho esto, inicaremos el emulador e indicaremos la URL del Bot, su Microsoft App ID y su Microsoft App Password. Pulsaremos en el botón de refresco y obtendremos en el log algo parecido a lo siguiente:
Aquí podemos hacer clic sobre la opción Configure ngrok de la ventana de log, o bien, en la parte superior izquierda, hacer clic en los tres puntitos, y dentro del menú emergente, hacer clic sobre la opción App Settings.
De una forma u otra, aparecerá una ventana para configurar ngrok, dentro de la cual indicaremos el path y fichero ejecutable de ngrok y pulsaremos sobre el botón Save para guardar los cambios.
Para confirmar el proceso, pulsaremos sobre el botón de refresco de emulador.
Si hemos hecho todo bien, aparecerá entonces una ventana indicando que ngrok está escuchando.
Si ejecutamos ahora nuestro bot a través del emulador, deberíamos poder jugar con él de forma directa y sencilla.
Si por alguna razón quisiéramos quitar ngrok, abriremos la ventana App Settings nuevamente y dejaremos vacía la ruta de ngrok y pulsaremos nuevamente sobre Save.
Espero que sirva de utilidad.
¡Happy Coding!