Este proyecto proporciona una API para la integración con WhatsApp utilizando whatsapp-web.js, permitiendo la generación de códigos QR para la autenticación y verificación de números de WhatsApp.
- Node.js (versión recomendada: 14.x o superior)
- npm (normalmente viene con Node.js)
- Un dispositivo móvil con WhatsApp instalado
-
Clona el repositorio:
git clone [URL-del-repositorio] cd checkerwsp -
Instala las dependencias:
npm install
-
Clona el repositorio:
git clone [URL-del-repositorio] cd checkerwsp -
Construye y ejecuta con Docker Compose:
docker-compose up -d
-
Ver logs (opcional):
docker-compose logs -f
-
Detener el servicio:
docker-compose down
Notas para Docker:
- El servicio se ejecutará en el puerto 3001
- Los datos de la sesión de WhatsApp se persistirán en un volumen Docker
- El contenedor se reiniciará automáticamente en caso de fallo
Servicio para verificar números de WhatsApp y gestionar sesiones de WhatsApp Web.
- Verificación de números de WhatsApp
- Interfaz web para escanear código QR
- Gestión automática de sesiones
- API REST para integración con otros servicios
- Manejo de reconexión automática
- Persistencia de datos en volúmenes Docker
- Docker instalado en el sistema
- Puerto 3001 disponible
- Conexión a Internet
La imagen está disponible en Docker Hub: skarious/checkerwsp
# Descargar y ejecutar la imagen desde Docker Hub
docker run -d \
-p 3001:3001 \
-v whatsapp_auth:/usr/src/app/.wwebjs_auth \
-v whatsapp_cache:/usr/src/app/.wwebjs_cache \
--name whatsapp-checker \
skarious/checkerwsp:latestSi prefieres construir la imagen localmente:
# Clonar el repositorio
git clone <url-del-repositorio>
cd checkerwsp
# Construir la imagen
docker build -t whatsapp-checker .
# Ejecutar el contenedor
docker run -d \
-p 3001:3001 \
-v whatsapp_auth:/usr/src/app/.wwebjs_auth \
-v whatsapp_cache:/usr/src/app/.wwebjs_cache \
--name whatsapp-checker \
whatsapp-checkerUna vez que el contenedor esté en ejecución:
- Accede a
http://localhost:3001/qrpara escanear el código QR - Usa la API REST para verificar números:
- GET
/verify/:number- Verifica si un número tiene WhatsApp - GET
/qr- Obtiene el estado de la sesión/código QR
- GET
- La primera vez que se ejecuta, necesitarás escanear un código QR con WhatsApp
- Los datos de la sesión se persistirán en volúmenes Docker
- El contenedor se reiniciará automáticamente en caso de fallo
- Si cierras sesión en WhatsApp Web, el sistema generará automáticamente un nuevo código QR
checkerwsp/
├── services/
│ └── whatsapp.js # Servicio principal de WhatsApp
├── routes/
│ ├── verify.js # Ruta para verificación de números
│ └── qr.js # Ruta para gestión de QR y sesión
├── Dockerfile # Configuración de Docker
├── index.js # Punto de entrada de la aplicación
└── package.json # Dependencias y scripts
Para contribuir o modificar el proyecto:
- Clona el repositorio
- Instala las dependencias:
npm install - Realiza tus cambios
- Construye la imagen:
docker build -t whatsapp-checker . - Prueba los cambios localmente
- Si todo funciona, publica tu propia versión:
docker tag whatsapp-checker tu-usuario/whatsapp-checker:tag
docker push tu-usuario/whatsapp-checker:tagEl proyecto utiliza las siguientes dependencias principales:
- express: ^4.21.2
- qrcode: ^1.5.4
- whatsapp-web.js: ^1.26.0
-
Inicia el servidor:
node index.js
-
El servidor se iniciará en:
- Puerto: 3001
- URL: http://0.0.0.0:3001
-
Acceso al código QR:
- Abre en tu navegador:
http://<tu-ip>:3001/qr - Reemplaza
<tu-ip>con la IP de tu computadora en la red local
- Abre en tu navegador:
-
Conexión con WhatsApp:
- Abre WhatsApp en tu teléfono móvil
- Ve a Configuración > WhatsApp Web
- Escanea el código QR mostrado en tu navegador
-
Verificación de números:
- Una vez conectado, puedes verificar números usando:
http://<tu-ip>:3001/verify/NUMERO - Reemplaza NUMERO con el número a verificar (incluye código de país)
- Una vez conectado, puedes verificar números usando:
/qr: Genera y muestra el código QR para la autenticación/verify/:number: Verifica si un número de teléfono tiene WhatsApp. Reemplaza:numbercon el número a verificar (formato: código de país + número, sin '+' ni espacios)
# Obtener el código QR en formato HTML
curl http://<tu-ip>:3001/qr# Verificar si un número tiene WhatsApp (ejemplo con número argentino)
curl http://<tu-ip>:3001/verify/5491112345678
# Respuesta ejemplo (si tiene WhatsApp):
# {
# "success": true,
# "message": "El número tiene WhatsApp."
# }
# Respuesta ejemplo (si no tiene WhatsApp):
# {
# "success": true,
# "message": "El número no tiene WhatsApp."
# }
# Respuesta si no hay sesión activa:
# {
# "success": false,
# "message": "No hay una sesión activa en este momento. Escanea el código QR para iniciar sesión."
# }Notas importantes:
- El número debe incluir el código de país (ej: 54 para Argentina)
- No incluir el símbolo '+' ni espacios en el número
- Asegúrate de tener una sesión activa (haber escaneado el QR) antes de verificar números
-
Si el código QR no se muestra:
- Verifica que el servidor esté corriendo
- Asegúrate de usar la IP correcta
- Comprueba tu conexión a internet
-
Si la conexión se pierde:
- Reinicia el servidor
- Vuelve a escanear el código QR
- El servidor debe mantenerse en ejecución para mantener la conexión activa
- Si el proceso se detiene, necesitarás volver a iniciar el servidor y escanear el QR
- No compartas los códigos QR generados
- Mantén tu sesión de WhatsApp Web cerrada cuando no la uses
- Evita exponer el servidor directamente a internet sin las medidas de seguridad adecuadas
- Haz un Fork del proyecto
- Crea una rama para tu función (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia Creative Commons Attribution 4.0 International (CC BY 4.0). Esto significa que:
-
Eres libre de:
- Compartir — copiar y redistribuir el material en cualquier medio o formato
- Adaptar — remezclar, transformar y construir a partir del material para cualquier propósito, incluso comercialmente
-
Bajo los siguientes términos:
- Atribución — Debes dar crédito de manera adecuada, brindar un enlace a la licencia, e indicar si se han realizado cambios. Puede hacerlo en cualquier forma razonable, pero no de forma tal que sugiera que usted o su uso tienen el apoyo del licenciante.
Para más información sobre esta licencia, visita: Creative Commons Attribution 4.0 International