Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6260) in /home/planetac/desa.planetachatbot.com/wp-content/plugins/all-in-one-seo-pack/app/Common/Meta/Robots.php on line 87

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6260) in /home/planetac/desa.planetachatbot.com/wp-includes/feed-rss2.php on line 8
Bismo Baruno - Planeta Chatbot https://desa.planetachatbot.com Comunidad de expertos en IA Conversacional Thu, 10 Nov 2022 22:48:31 +0000 es hourly 1 https://wordpress.org/?v=7.1 https://desa.planetachatbot.com/wp-content/uploads/2021/05/cropped-favicon-32x32.png Bismo Baruno - Planeta Chatbot https://desa.planetachatbot.com 32 32 Construir un chatbot básico con Golang y Messenger https://desa.planetachatbot.com/construir-un-chatbot-basico-con-golang-y-messenger/?utm_source=rss&utm_medium=rss&utm_campaign=construir-un-chatbot-basico-con-golang-y-messenger https://desa.planetachatbot.com/construir-un-chatbot-basico-con-golang-y-messenger/#respond Thu, 10 Nov 2022 06:00:51 +0000 https://desa.planetachatbot.com/?p=12825 Presentación ¡Hola a todos! Seguid conmigo para compartir alguna experiencia, pensamiento u opinión sobre la tecnología relacionada con el campo de la ingeniería del software. ¡En este artículo, quiero compartir cómo crear un simple Chatbot usando Golang y Messenger! Para dar un poco de contexto a lo que debemos hacer, aquí hay varios puntos que […]

The post Construir un chatbot básico con Golang y Messenger first appeared on Planeta Chatbot.

]]>
Presentación

¡Hola a todos! Seguid conmigo para compartir alguna experiencia, pensamiento u opinión sobre la tecnología relacionada con el campo de la ingeniería del software. ¡En este artículo, quiero compartir cómo crear un simple Chatbot usando Golang y Messenger!

Para dar un poco de contexto a lo que debemos hacer, aquí hay varios puntos que vamos a manejar:

  • Tener una cuenta de Facebook o crear una nueva.
  • Crear una página de Facebook.
  • Crear una aplicación de Facebook (debería crearse automáticamente).
  • Crear un servidor de webhooks.

Diseño de la arquitectura

Para recibir un mensaje enviado por el usuario final al Messenger (página de Facebook), necesitamos proporcionar un servidor de Webhooks con REST API. El diseño de la arquitectura será como este diagrama:

Diseño de la arquitectura del chatbot

Cuenta de Facebook

Supongo que hoy en día la gente tiene una cuenta de Facebook. Sin embargo, si no es así, sólo tienes que visitar https://www.facebook.com para registrarte fácilmente haciendo clic en el botón Crear nueva cuenta.

Página de Facebook

La creación de una página de Facebook puede hacerse a través del menú de la página de inicio.

A continuación, haz clic en el botón Crear nueva página para ir a un formulario de Creación de una página.

O simplemente abra este enlace https://www.facebook.com/pages/create/?ref_type=site_footer para ir directamente al formulario de creación de una página. Rellena la información necesaria y termina haciendo clic en el botón Crear página.

Formulario para crear una nueva página

En la lista de páginas, aparecerá una nueva página.

Nueva página creada

Aplicación de Facebook

A continuación, dirígete a la página Meta for Developers aquí https://developers.facebook.com y elige el menú My Apps.

Página Meta para desarrolladores

Crea una nueva aplicación haciendo clic en el botón Crear aplicación.

Crear aplicación

Elige el tipo de negocio y haz clic en el botón Siguiente.

Elige el tipo de aplicación

Agrega la información detallada de la aplicación, el último paso es hacer clic en Crear aplicación para continuar.

Proceder a la creación de la aplicación

Espera un poco, la página será redirigida a la aplicación detallada después de ser creada con éxito.

Webhook

Antes de añadir productos de Messenger y Webhook en la aplicación de Facebook, podemos preparar un Webhook sólo para validar la URL de devolución de llamada. Para obtener información detallada, consulta esta documentación:

  • https://developers.facebook.com/docs/messenger-platform/getting-started/webhook-setup/

Como vamos a utilizar Go para este tutorial, mejor entender Go con este enlace:

Entonces, el ejemplo de código Go lo puedes ver aquí:

En realidad, necesitamos desplegar el Webhook en vivo que puede recibir eventos de webhook desde la Plataforma de Mensajería. El código debe estar alojado en un servidor HTTPS público. Pero podemos hacerlo localmente y hacer un túnel desde la URL pública a nuestro localhost usando ngrok. Para instalar y usar ngrok por favor refiérete a este enlace: https://ngrok.com/

En primer lugar, ejecute el servidor Webhook utilizando este comando:

go run .

El Webhook se ejecutará en el puerto 3000.

2022/01/03 00:36:30 http server listening at localhost:3000

Luego, habilitar el túnel es muy fácil, sólo hay que ejecutar este comando:

ngrok http 3000

Si ngrok habilita con éxito el túnel, la salida tendrá el siguiente aspecto:

ngrok Enabling Tunnel

Prueba el túnel haciendo este sencillo rizo:

curl --location --request GET 'https://e52b-2001-448a-400d-238a-d170-291d-3057-4e4a.ngrok.io/?hub.verify_token=12345&hub.challenge=challenge'

¡Cuando la salida es la misma que hub.challenge el parámetro de la consulta, entonces está funcionando!

challenge⏎

Configurar el producto de mensajería

Después de que el Webhook esté listo, el siguiente paso es configurar el producto Messenger. Busca el producto Messenger y haz clic en el botón Configurar.

Configurar el producto de mensajería

Vincula la configuración de Messenger con la página de Facebook que hemos creado en el apartado anterior.

Añadir página de Facebook
Elige la página de Facebook

Añade la URL de devolución de llamada usando ngrok HTTPS URL al formulario de configuración de la URL de devolución de llamada.

Añadir URL de devolución de llamada
Rellenar URL y Token

Como vamos a recibir mensajes de la plataforma Messenger, añade una suscripción para el campo de mensajes.

Suscripción al campo de mensajes

Utiliza la misma cuenta de Facebook que ha creado la aplicación de Facebook para enviar un mensaje al mensajero de la página de Facebook (también podemos invitar a otros usuarios a probar esta aplicación). Si nuestro Webhook recibe el mensaje con éxito, significa que nuestro Webhook está funcionando.

Prueba de recepción de mensajes

Configurar el producto Webhook

La siguiente parte es el envío del mensaje de respuesta del usuario final. En este ejemplo, la configuración para el ajuste de Webhooks se llena automáticamente después de terminar la configuración de Messenger (con el campo de suscripción al mensaje). En el caso de que nuestra configuración no se haya configurado automáticamente, por favor, remitete a estos ajustes.

Configuración de los Webhooks

Generar token de acceso

Basándonos en esta documentación de la API de envío, necesitamos que se incluya el token de acceso a la página en la solicitud para poder enviar el mensaje.

https://developers.facebook.com/docs/messenger-platform/reference/send-api/

Luego, tenemos que ir a la página de Configuración de Messenger y hacer Generar Token. El token se ocultará después de cerrar la ventana emergente. Por eso es mejor copiar el token y guardarlo.

Generar token

Modificar Webhook

Para enviar un mensaje a un usuario concreto, necesitamos el Token generado en el apartado anterior y realizar una petición HTTP a la API de Facebook. El código final tendrá el siguiente aspecto.

Golang y messenger
Mensaje de respuesta del webhook enviado

Conclusión

Construir un Chabot para la plataforma de Messenger es bastante sencillo porque hay mucha documentación bien escrita desde el sitio oficial. Además, no hay limitaciones para crear, acceder a la página y a la aplicación para que podamos probar fácilmente nuestro Chatbot.

Aunque el alcance de este artículo se limita a responder al mensaje, hay un montón de funciones de Messenger disponibles, así que espero que puedas explorar más por ti mismo.
Gracias por leerlo. Espero que este artículo sea útil para ti.

The post Construir un chatbot básico con Golang y Messenger first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/construir-un-chatbot-basico-con-golang-y-messenger/feed/ 0
Construir un chatbot básico con Golang y Telegram https://desa.planetachatbot.com/construir-chatbot-basico-golang-telegram/?utm_source=rss&utm_medium=rss&utm_campaign=construir-chatbot-basico-golang-telegram https://desa.planetachatbot.com/construir-chatbot-basico-golang-telegram/#respond Tue, 18 Oct 2022 06:00:00 +0000 https://desa.planetachatbot.com/?p=12559 ¡Hola a todos! Sigo compartiendo alguna experiencia, pensamiento u opinión sobre la tecnología en el campo de la ingeniería de software. Anteriormente, compartí cómo construir un simple Chatbot en Messenger usando Golang. Si quieres leerlo no dudes en acceder al artículo. Sin embargo, en este artículo, quiero compartir cómo implementarlo en otra app de mensajería, […]

The post Construir un chatbot básico con Golang y Telegram first appeared on Planeta Chatbot.

]]>
¡Hola a todos! Sigo compartiendo alguna experiencia, pensamiento u opinión sobre la tecnología en el campo de la ingeniería de software. Anteriormente, compartí cómo construir un simple Chatbot en Messenger usando Golang. Si quieres leerlo no dudes en acceder al artículo.

Sin embargo, en este artículo, quiero compartir cómo implementarlo en otra app de mensajería, por lo que en este caso voy a hablar de Telegram! Por supuesto, ¡todavía usando Golang para el backend!

Para dar un poco de contexto a lo que debemos hacer, aquí hay varios puntos que vamos a manejar:

  • Tener una cuenta de Telegram o crear una nueva.
  • Crear un Bot usando Bot Father.
  • Configurar los ajustes del webhook en el Bot creado.
  • Crear un servidor de webhooks.

Diseño de la arquitectura

Para recibir un mensaje enviado por el usuario final a Telegram, necesitamos proporcionar un servidor de Webhooks con REST API. El diseño de la arquitectura será como este diagrama:  

Cuenta de Telegram

El requisito básico es tener una cuenta de Telegram. Para darse de alta en Telegram, hay que buscar la aplicación en Play Store / App Store o simplemente abrir este enlace: https://telegram.org/apps y elegir la aplicación móvil en función del dispositivo que estemos utilizando.

Nota: para darse de alta en telegram necesitamos un número de teléfono activo.

Crear un Bot con Bot Father

Después de terminar el registro de la cuenta, el siguiente paso es crear el Bot usando Bot Father. Podemos buscar el Bot desde la aplicación móvil o simplemente abrir este enlace: https://telegram.me/BotFather y luego abrirlo en la aplicación móvil o en la web.

Lista de comandos BotFather

Para conocer la lista de comandos, podemos enviar un mensaje /start al Padre Bot y nos responderá con un mensaje como el de la imagen anterior.

Creado un bot correctamente

Crear un nuevo bot es muy sencillo. Sólo tienes que escribir /newbot y luego poner el nombre del bot. No olvides que para que el nombre sea válido, el nombre del bot debe terminar con «Bot». Cuando se haya creado con éxito, el BotFather enviará un mensaje con el token que se puede utilizar para acceder a la API de Telegram. Asegúrate de guardar este token en un lugar seguro.

Webhook

En la primera fase, podemos crear un simple Webhook para imprimir los datos de la solicitud y ver qué datos reales envía Telegram.

Debido a que usaremos Go para este tutorial, es mejor que conozcas esta plataforma con la información que te muestro en este enlace. El ejemplo del código Go lo puedes consultar en este enlace.

En realidad, necesitamos implementar el Webhook en vivo que puede recibir eventos de webhook desde la Plataforma Telegram. El código debe estar alojado en un servidor HTTPS público. Pero podemos hacerlo localmente y hacer un túnel desde la URL pública hasta nuestro localhost usando ngrok. Para instalar y usar ngrok, consulte este enlace.

Primero, ejecuta el servidor Webhook usando este comando:

go run .

El Webhook se ejecutará en el puerto 3000.

2022/09/05 17:53:20 http server listening at localhost:3000

Como ves, habilitar el túnel es muy fácil, solo tienes que ejecutar este comando:

ngrok http 3000

Si ngrok habilita con éxito el túnel, la salida se verá así:

ngrok Enabling Tunnel

Para probar este webhook, podemos establecer la URL de ngrok en la configuración del bot llamando a la API de Telegram. Aquí está el rizo para actualizar la URL de Webhook:

curl --location --request POST 'https://api.telegram.org/bot${BOT_TOKEN}/SetWebhook' \--header 'Content-Type: application/x-www-form-urlencoded' \--data-urlencode 'url=https://3391-126-117-109-73.ngrok.io'

Please change the ${BOT_TOKEN} with the token that we get after creating a new Bot.

Si el Webhook se establece correctamente, debería devolver este JSON:

{
 "ok": true,
 "result": true,
 "description": "Webhook was set"
}

El siguiente paso es buscar el Bot que hemos creado, y simplemente hacer clic en el botón START para activar el mensaje.

Golang
Empezar una conversación con el Bot

Si la consola recibió este tipo de mensaje, significa que la configuración de Webhook es correcta y el código de webhook está funcionando.

El webhook ha recibido un mensaje con éxito

Modificar Webhook

Para enviar un mensaje a un usuario concreto, solo tenemos que llamar a la API de Telegram con un token y especificar el id del usuario y el mensaje. Modificaremos el código para que siempre se envíe un mensaje de respuesta estático cuando enviemos algo. El código final tendrá este aspecto (asegúrate de sustituir la const ACCESS_TOKEN por el token real). Puedes ver el código aquí.

El código anterior es solo un simple Chatbot que siempre enviará mensajes de «Responder automáticamente 🙌🏻» sea cual sea el tipo de mensajes que se envíen por parte del usuario (texto, pegatina, emoji, gif, archivos). Aquí está el resultado del código final, ¡después de enviar el mensaje recibimos la respuesta! ¡Sí, está funcionando!

Mensaje de respuesta del webhook enviado

Token secreto de Webhook

Con la implementación actual, todos los que conozcan nuestra URL de Webhook pueden acceder a ella libremente. Para asegurar esto, Telegram tiene una nueva actualización aquí: https://core.telegram.org/bots/api#june-20-2022

Con secret_token como parámetro opcional, podemos elegir establecerlo o no en el método setWebhook. Cuando configuramos el secret_token, podemos verificar la solicitud entrante mirando el encabezado X-Telegram-Bot-Api-Secret-Token.

Final

Construir un chabot para la plataforma de Telegram es muy simple porque no hay un gran esfuerzo a partir de crear un bot y configurar la URL de Webhook. Además, no hay limitación para que creemos el bot para que podamos probar fácilmente nuestro Chatbot.

Aunque el alcance de este artículo se limita a responder al mensaje, hay muchas funciones de Telegram disponibles, ¡así que espero que puedas explorar más por ti mismo!  

¡Gracias por leer! ¡Espero que este artículo sea útil para ti!

The post Construir un chatbot básico con Golang y Telegram first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/construir-chatbot-basico-golang-telegram/feed/ 0