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 6260all-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 6260wp-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 6260The post Construir un chatbot básico con Golang y Messenger first appeared on Planeta Chatbot.
]]>¡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:
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:

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.

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.

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

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

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

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

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

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

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:
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:

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⏎
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.

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


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.


Como vamos a recibir mensajes de la plataforma Messenger, añade una suscripción para el 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.

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.

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.

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.

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.
]]>The post Construir un chatbot básico con Golang y Telegram first appeared on Planeta Chatbot.
]]>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:
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:

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.
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.

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.

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.
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í:

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.

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.

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!

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.
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.
]]>