El siguiente proyecto se realizó con fines educativos para el canal de Youtube (Leifer Mendez) donde aprendemos a crear y implementar un chatbot increíble usando node.js además le agregamos inteligencia artificial gracias al servicio de dialogflow.
💥💥 Si te aparece el Error Multi-device es porque tienes la cuenta de whatsapp afiliada al modo "BETA de Multi dispositivo" por el momento no se tiene soporte para esas personas si tu quieres hacer uso de este BOT debes de salir del modo BETA y intentarlo de la manera tradicional
El core de whatsapp esta en constante actualizaciones por lo cual siempre revisa la ultima fecha de la actualizacion VER
Hola amigos me gusta mucho este proyecto pero por cuestiones de tiempo se me dificulta mantener las actualizaciones si alguno quieres participar en el proyecto escribeme a leifer.contacto@gmail.com
Si tienes una cuenta en heroku puedes desplegar este proyecto con (1 click)
Comprarme un cafe!
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 | ✅ |
- node v14 o superior
- VSCode (Editor de codigo) Descargar
- MySql (opcional) solo aplica si vas a usar el modo 'mysql' sql-bot.sql migración
- Dialogflow (opcional) solo aplica si vas a usar el modo 'dialogflow'
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
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"}
]
}
)
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
const { sendMediaVoiceNote } = require('./controllers/send')
await sendMediaVoiceNote(client, from, 'PTT-20220223-WA0000.opus')
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 install
Configurar .env
Con el editor de texto crea un archivo
.env
el cual debes de guiarte del archivo.env.example
Ver video explicando
######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
Visitar la pagina `http://localhost:3000/qr`Ahora abre la aplicación de Whatsapp en tu dispositivo y escanea el código QR
Listo 😎
Escribe un mensaje al whatsapp que vinculaste con tu BOT
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
Puedes interactuar con el bot ejemplo escribele hola y el bot debe responderte!