Giter Club home page Giter Club logo

whatsapp-bot-prototype's Introduction

Prototipo de Chatbot para WhatsApp con API oficial

Este proyecto es una prueba para aprender cómo crear un chatbot para WhatsApp utilizando la API oficial de Meta. Está desarrollado en Java 17 con Spring Boot 3.2 y permite realizar algunas acciones básicas.

Objetivos específicos:

  • Enviar Templates: Enviar mensajes predefinidos utilizando plantillas.
  • Enviar Mensajes de Texto: Enviar un mensaje personalizado a un usuario que haya iniciado la conversación previamente.
  • Configurar el Webhook: Establecer una conexión para recibir las notificaciones de eventos y mensajes.
  • Recibir Mensajes: Identificar el tipo de mensaje recibido y acceder a su contenido si es de texto.
  • Responder Mensajes de Texto: Responder a un mensaje de texto incluyendo el contenido del mensaje recibido.
  • Solicitar datos uno a uno: Solicitar una serie de datos a un usuario y mostrarlos en un mensaje al finalizar.

Captura de pantalla

Captura de pantalla del chat

Instrucciones

A continuación se detallan los pasos para ejecutar la aplicación en un entorno local.

Importante: Se asume que:

  • Ya se ha creado la aplicación en Meta for Developers y se ha generado un token para la misma.
  • Se ha creado un dominio estático en ngrok y se ha configurado en la aplicación de Meta.
  1. Clonar el repositorio.

    git clone https://github.com/JotaJota96/whatsapp-bot-prototype.git
    cd whatsapp-bot-prototype/
  2. Copiar el template del archivo de configuración de secretos a la raíz del repositorio como secrets.properties.

    cp src/main/resources/secret.properties.template secrets.properties

    Abrirlo y completar los datos de conexión a la API de Meta. (URL, token de la API y token de verificación para el webhook)

  3. Compilar la aplicación.

    Si se tiene instalado Maven, se puede compilar con:

    mvn clean package

    De lo contrario, se puede compilar con Docker (aunque al tener que descargar las dependencias, es más lento):

    docker run \
        --rm \
        -v "$PWD":/usr/src/app \
        -v "$PWD"/.m2:/root/.m2 \
        -w /usr/src/app \
        maven:3.6.3-openjdk-17 \
        bash -c "mvn clean package && chown -R $(id -u):$(id -g) target .m2"
  4. Correr la aplicación.

    Si se tiene instalado el JDK de Java 17, se puede correr con:

    java -jar target/WhatsAppBotPrototype-0.0.1-SNAPSHOT.jar

    Si no, se puede correr con Docker:

    docker run \
        --rm \
        --name whatsapp-bot-app \
        -p 8080:8080 \
        -v "$PWD:/usr/src/app" \
        -w /usr/src/app \
        openjdk:17-alpine \
        java -jar target/WhatsAppBotPrototype-0.0.1-SNAPSHOT.jar
  5. Exponer la aplicación a Internet utilizando ngrok en docker.

    docker run -it \
        --rm \
        --name whatsapp-bot-ngrok \
        -e NGROK_AUTHTOKEN=<TOKEN> \
        --link whatsapp-bot-app \
        ngrok/ngrok \
        http whatsapp-bot-app:8080 \
        --domain=<DOMINIO>

whatsapp-bot-prototype's People

Contributors

jotajota96 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.