
Bird ha lanzado recientemente Conversaciones Programables. Permite a las empresas combinar plataformas de comunicación como WhatsApp, Messenger y SMS en sus sistemas, utilizando una única API.
Bird lanzó recientemente Programmable Conversations. Permite a las empresas integrar plataformas de comunicación como WhatsApp, Messenger y SMS en sus sistemas utilizando una sola API.
Quería probarlo, así que construí un bot de lista de tareas para WhatsApp, porque ¿quién no necesita una lista de tareas automatizada para ayudar a organizar su día? Puede sonar complicado, pero en realidad fue fácil, y me gustaría contarte todo al respecto.
Ahora, trabajo en MessageBird, así que podía sumergirme y comenzar a construir. Si lo intentas, necesitarás solicitar acceso anticipado. Pero una vez que estés configurado con un canal de WhatsApp, puedes iniciar sesión en el Dashboard en el sitio web de MessageBird y comenzar.
Lo primero que hice fue leer la documentación. Aprendí que, para recibir mensajes del bot, tendría que usar un webhook. Esto significaba que mi bot necesitaría ser accesible desde Internet. Al construir APIs como esta, es importante seguir las mejores prácticas de versionado de API para la mantenibilidad. Como estaba comenzando a codificar, decidí usar ngrok. Crea un túnel desde la internet pública a tu querido localhost en el puerto 5007. ¡Engancha!
ngrok http 5007 -region eu -subdomain todobot
Luego, necesitaba hacer una llamada a la API de Programmable Conversations para crear el webhook. Es un POST a https://conversations.messagebird.com/v1/webhooks
y se ve algo así:
Genial. Ahora la API de Conversations hará una solicitud POST a:
https://todobot.eu.ngrok.io/create-hook
cada vez que se crea un nuevo mensaje en el canal de WhatsApp que configuraste antes.
Así es como se ve una carga útil de webhook:
Queremos responder a esos mensajes. Comencemos por devolverlos, ¿qué dices?
Ahora, para la parte interesante. Haz una solicitud POST a:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages
para responder a la solicitud.
Ahí está. Esto es todo lo que necesitas para crear un bot que actúe como un humano de 5 años.
Ahora, avancemos hacia la construcción de toda la lista de tareas. Primero, modifica un poco la función createHookHandler para que llame a la nueva función handleMessage en lugar de responder.
handle analizará simplistamente los mensajes, hará algún trabajo, y seleccionará la respuesta. Veamos el comando “add”:
Aquí, configuramos: list := manager.fetch(whp.Conversation.ID). Básicamente, “manager” es un mapa seguro para la concurrencia que asigna IDs de conversación a listas de tareas.
Una lista de tareas es una porción de cadena segura para la concurrencia. ¡Todo en memoria!
¡Otra cosa importante! Puedes archivar conversaciones. En algunas aplicaciones, como CRMs, es importante realizar un seguimiento de ciertas interacciones, como para evaluar la efectividad de los empleados de atención al cliente, por ejemplo. La API de Conversations te permite archivar una conversación para “cerrar” el tema. Si el usuario/cliente envía otro mensaje, la API de Conversations abrirá automáticamente un nuevo tema.
Además. Hacer una solicitud PATCH a https://conversations.messagebird.com/v1/conversations/{id}
con el estado correcto en el cuerpo te permite archivar la conversación con ese id. Hacemos esto con el comando “bye”:
archiveConversation hará la solicitud PATCH y manager.close(whp.Conversation.ID) eliminará la conversación de la lista de tareas.
Pero oye, Programmable Conversations es una solución multicanal. ¿Qué pasa si quisieras reutilizar el código del bot para otra plataforma, como WeChat? Este enfoque multicanal es parte de la estrategia de desviar consultas a canales de menor costo. ¿Cómo lo harías?
¡Simplemente crea un nuevo webhook para apuntar a ese canal! ¡Un webhook que envíe solicitudes a la misma url https://todobot.eu.ngrok.io/create-hook
que usamos para WhatsApp!
Esto funcionará porque el código del manejador siempre utiliza el conversationID de la carga útil del webhook para responder a los mensajes en lugar de un channelID codificado. La API de Conversations de MessageBird determinará automáticamente el canal para la conversación para enviar tu mensaje.
¿Quieres construir tu propio bot? Echa un vistazo al código completo en Github: https://github.com/marcelcorso/wabot, solicita acceso anticipado a WhatsApp a través de este enlace y comienza a construir directamente. ¡Feliz creación de bots!