## Chatbot Whatsapp (OpenSource) #### Actualización | Feature | Status | | ------------- | ------------- | | Dialogflow | ✅ | | MySQL | ✅ | | JSON File | ✅ | | QR Scan (route) | ✅ | | Easy deploy heroku | ✅ | | Buttons | ✅ℹ️ (No funciona en multi-device)| | Send Voice Note | ✅ | | Add support ubuntu/linux | ✅ | ## Requisitos - node v14 o superior - VSCode (Editor de codigo) [Descargar](https://code.visualstudio.com/download) - MySql (opcional) solo aplica si vas a usar el modo 'mysql' [sql-bot.sql migración](https://github.com/leifermendez/bot-whatsapp/blob/main/sql-bot.sql) - Dialogflow (opcional) solo aplica si vas a usar el modo 'dialogflow' ### (Nuevo) Botones [![btn](https://i.imgur.com/W7oYlSu.png)](https://youtu.be/5lEMCeWEJ8o) > Implementar los botones solo necesitas hacer uso del metodo __sendMessageButton__ que se encuentra dentro `./controllers/send` dejo un ejemplo de como usarlo. [Ver implementación](https://github.com/leifermendez/bot-whatsapp/blob/main/app.js#L123) ``` javascript const { sendMessageButton } = require('./controllers/send') await sendMessageButton( { "title":"¿Que te interesa ver?", "message":"Recuerda todo este contenido es gratis y estaria genial que me siguas!", "footer":"Gracias", "buttons":[ {"body":"😎 Cursos"}, {"body":"👉 Youtube"}, {"body":"😁 Telegram"} ] } ) ``` ## Notas de Voz [![voice note](https://i.imgur.com/zq6xYDp.png)](https://i.imgur.com/zq6xYDp.png) > Se pueden enviar notas de voz con formato nativo para que no se vea como reenviado. En este ejemplo enviare el archivo __PTT-20220223-WA0000.opus__ que se encuentra dentro de la carpeta de __/mediaSend__ ``` javascript const { sendMediaVoiceNote } = require('./controllers/send') await sendMediaVoiceNote(client, from, 'PTT-20220223-WA0000.opus') ``` ## Instruciones __Descargar o Clonar repositorio__ __Usas ¿Ubuntu / Linux?__ > Asegurate de instalar los siguientes paquetes ``` sudo apt-get install -y libgbm-dev sudo apt install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget ``` __Instalar dependencias (npm install)__ > Ubicate en le directorio que descargaste y via consola o terminal ejecuta el siguiente comando ``` npm i ``` __Configurar .env__ > Con el editor de texto crea un archivo `.env` el cual debes de guiarte del archivo `.env.example` [Ver video explicando](https://youtu.be/5lEMCeWEJ8o?t=381) ``` ######DATABASE: none, mysql, dialogflow DEFAULT_MESSAGE=true SAVE_MEDIA=true PORT=3000 DATABASE=none LANGUAGE=es SQL_HOST= SQL_USER= SQL_PASS= SQL_DATABASE= ``` __Ejecutar el script__ > Ubicate en le directorio que descargaste y via consola o terminal ejecuta el siguiente comando `npm run start` __Whatsapp en tu celular__ > Ahora abre la aplicación de Whatsapp en tu dispositivo y escanea el código QR Tambien puedes visitar la pagina http://127.0.0.1:3000/qr __Listo 😎__ > Cuando sale este mensaje tu BOT está __listo__ para trabajar! ![](https://i.imgur.com/eoJ4Ruk.png) # ¿Quieres ver como se creó? 🤖 - [Ver Video 1](https://www.youtube.com/watch?v=A_Xu0OR_HkE) - [¿Como instalarlo? (Actulización)](https://youtu.be/5lEMCeWEJ8o) ## ¿Como usarlo el chatbot de whatsapp? > Escribe un mensaje al whatsapp que vinculaste con tu BOT ![](https://i.imgur.com/OSUgljQ.png) > Ahora deberías obtener un arespuesta por parte del BOT como la siguiente, ademas de esto tambien se crea un archivo excel con el historial de conversación con el número de tu cliente