up
This commit is contained in:
@@ -1,295 +1,93 @@
|
||||
# 🤖 Sistema de WhatsApp Bot Manager
|
||||
# WhatsApp Bot Manager 🚀
|
||||
|
||||
Un sistema completo de gestión de chatbot para WhatsApp Business API con interfaz web moderna, menús parametrizables y gestión avanzada de conversaciones.
|
||||
|
||||
## ✨ Características
|
||||
|
||||
### 🔧 Funcionalidades Principales
|
||||
- **Bot Inteligente** con menús parametrizables por números
|
||||
- **Interfaz Web Moderna** para gestión completa
|
||||
- **API REST** para integración con sistemas externos
|
||||
- **Respuestas Automáticas** configurables
|
||||
- **Envío de Mensajes** individuales y masivos
|
||||
- **Gestión de Usuarios** con estados y seguimiento
|
||||
- **Dashboard Analytics** con gráficos en tiempo real
|
||||
- **Logs Detallados** de todas las interacciones
|
||||
- **Sistema de Plantillas** para mensajes predefinidos
|
||||
|
||||
### 🎯 Sistema de Menús
|
||||
- Menús jerárquicos con navegación por números (1, 2, 3, etc.)
|
||||
- Acciones configurables: navegar, mensaje, API call, finalizar
|
||||
- Soporte para servicios, pagos, soporte técnico
|
||||
- Completamente parametrizable desde la interfaz
|
||||
|
||||
### 📱 Compatibilidad WhatsApp
|
||||
- Integración completa con WhatsApp Business API
|
||||
- Soporte para mensajes de texto, imágenes, audio, video
|
||||
- Plantillas de WhatsApp Business
|
||||
- Estados de entrega y lectura
|
||||
- Webhook seguro con verificación
|
||||
|
||||
## 🚀 Instalación
|
||||
|
||||
### 1. Prerrequisitos
|
||||
```bash
|
||||
- PHP 8.0 o superior
|
||||
- MySQL 5.7 o superior
|
||||
- Servidor web (Apache/Nginx)
|
||||
- WhatsApp Business API Token
|
||||
- Dominio con SSL (para webhook)
|
||||
```
|
||||
|
||||
### 2. Configuración de Base de Datos
|
||||
```bash
|
||||
# Importar el esquema de la base de datos
|
||||
mysql -u pym -p'Nicolas2796*+' -h 46.202.93.92 whatsapp < database/schema.sql
|
||||
```
|
||||
|
||||
### 3. Configuración del Proyecto
|
||||
```bash
|
||||
# Subir archivos al servidor
|
||||
# Ajustar permisos
|
||||
chmod 755 -R bot/
|
||||
chmod 666 config/config.php
|
||||
```
|
||||
|
||||
### 4. Configurar WhatsApp Business API
|
||||
|
||||
1. **Acceder a Facebook Developers**
|
||||
- Crear una aplicación en developers.facebook.com
|
||||
- Agregar el producto "WhatsApp Business API"
|
||||
|
||||
2. **Configurar Webhook**
|
||||
- URL del Webhook: `https://tudominio.com/migrador/api/webhook.php`
|
||||
- Token de Verificación: `mi_token_secreto_123`
|
||||
- Suscribirse a: `conversations`
|
||||
|
||||
3. **Obtener Tokens**
|
||||
- Token de Acceso (ya proporcionado)
|
||||
- Phone Number ID: `938177732702718`
|
||||
|
||||
### 5. Configuración en la Interfaz
|
||||
1. Abrir: `https://tudominio.com/migrador/`
|
||||
2. Ir a **Configuración**
|
||||
3. Completar:
|
||||
- Token de WhatsApp
|
||||
- Phone Number ID
|
||||
- Token de Verificación
|
||||
- Nombre de la empresa
|
||||
- Mensaje de bienvenida
|
||||
|
||||
## 📖 Uso del Sistema
|
||||
|
||||
### 🎮 Interfaz Web
|
||||
- **Dashboard**: Estadísticas y actividad en tiempo real
|
||||
- **Conversaciones**: Ver y gestionar todas las conversaciones
|
||||
- **Usuarios**: Administrar usuarios y estados
|
||||
- **Menús**: Configurar y editar el flujo del bot
|
||||
- **Mensajes**: Enviar mensajes individuales o masivos
|
||||
- **Configuración**: Ajustar parámetros del sistema
|
||||
|
||||
### 🤖 Bot de WhatsApp
|
||||
|
||||
#### Comandos Disponibles
|
||||
- `menu` - Mostrar menú principal
|
||||
- `ayuda` - Mostrar ayuda
|
||||
- `salir` - Salir del menú actual
|
||||
|
||||
#### Flujo de Menús (Ejemplo)
|
||||
```
|
||||
📋 Menú Principal
|
||||
|
||||
Selecciona una opción:
|
||||
1. 💼 Ver servicios disponibles
|
||||
2. 💳 Realizar pago
|
||||
3. 🆘 Contactar soporte
|
||||
0. ❌ Salir
|
||||
|
||||
💬 Responde con el número de la opción que deseas
|
||||
```
|
||||
|
||||
### 🔧 API Endpoints
|
||||
|
||||
#### Webhook
|
||||
```bash
|
||||
POST /api/webhook.php
|
||||
# Recibe mensajes de WhatsApp
|
||||
```
|
||||
|
||||
#### Enviar Mensaje
|
||||
```bash
|
||||
POST /api/send_message.php
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"recipient": "573168950803",
|
||||
"type": "text",
|
||||
"message": "Hola, este es un mensaje de prueba"
|
||||
}
|
||||
```
|
||||
|
||||
#### Obtener Estadísticas
|
||||
```bash
|
||||
GET /api/get_stats.php
|
||||
```
|
||||
|
||||
## 🏗️ Estructura del Proyecto
|
||||
|
||||
```
|
||||
migrador/
|
||||
├── api/ # Endpoints de la API
|
||||
│ ├── webhook.php # Webhook principal
|
||||
│ ├── send_message.php # Envío de mensajes
|
||||
│ ├── get_stats.php # Estadísticas
|
||||
│ └── ... # Otras APIs
|
||||
├── assets/ # Recursos estáticos
|
||||
│ ├── css/ # Estilos CSS
|
||||
│ └── js/ # JavaScript
|
||||
├── classes/ # Clases principales
|
||||
│ └── Database.php # Conexión a BD
|
||||
├── config/ # Configuración
|
||||
│ └── config.php # Configuración principal
|
||||
├── database/ # Base de datos
|
||||
│ └── schema.sql # Esquema de BD
|
||||
├── services/ # Servicios del sistema
|
||||
│ ├── WhatsAppService.php # Servicio WhatsApp
|
||||
│ └── BotService.php # Lógica del bot
|
||||
└── index.php # Página principal
|
||||
```
|
||||
|
||||
## 📊 Base de Datos
|
||||
|
||||
### Tablas Principales
|
||||
- `users` - Usuarios del sistema
|
||||
- `conversations` - Historial de mensajes
|
||||
- `menus` - Configuración de menús
|
||||
- `menu_options` - Opciones de cada menú
|
||||
- `autoresponses` - Respuestas automáticas
|
||||
- `system_config` - Configuración del sistema
|
||||
- `webhook_logs` - Logs de webhooks
|
||||
|
||||
## 🔧 Configuración Avanzada
|
||||
|
||||
### Menús Personalizados
|
||||
```sql
|
||||
-- Crear menú personalizado
|
||||
INSERT INTO menus (name, title, description, is_root) VALUES
|
||||
('mi_menu', '🏪 Mi Tienda', 'Menú de productos', TRUE);
|
||||
|
||||
-- Agregar opciones
|
||||
INSERT INTO menu_options (menu_id, option_number, text, action_type, action_value) VALUES
|
||||
(1, 1, '📱 Ver catálogo', 'message', 'Aquí tienes nuestro catálogo: www.mitienda.com'),
|
||||
(1, 2, '🛒 Hacer pedido', 'message', 'Para hacer un pedido, envía el código del producto'),
|
||||
(1, 0, '🔙 Volver', 'menu', 'main_menu');
|
||||
```
|
||||
|
||||
### Respuestas Automáticas
|
||||
```sql
|
||||
-- Agregar respuesta automática
|
||||
INSERT INTO autoresponses (trigger_type, trigger_value, response_text) VALUES
|
||||
('keyword', 'precio', 'Para consultar precios, escribe *catalogo* o visita www.mitienda.com'),
|
||||
('keyword', 'horarios', 'Atendemos de Lunes a Viernes de 8am a 6pm');
|
||||
```
|
||||
|
||||
## 🔐 Seguridad
|
||||
|
||||
- Validación de tokens en webhook
|
||||
- Escape de datos SQL
|
||||
- Headers de seguridad HTTP
|
||||
- Logs de todas las transacciones
|
||||
- Autenticación de API
|
||||
|
||||
## 🐛 Solución de Problemas
|
||||
|
||||
### Error de Conexión a BD
|
||||
```bash
|
||||
# Verificar credenciales en config/config.php
|
||||
# Verificar que el servidor MySQL esté activo
|
||||
# Comprobar permisos del usuario de BD
|
||||
```
|
||||
|
||||
### Webhook No Funciona
|
||||
```bash
|
||||
# Verificar que la URL sea accesible públicamente
|
||||
# Comprobar que tenga SSL (HTTPS)
|
||||
# Revisar logs en /api/get_logs.php
|
||||
```
|
||||
|
||||
### Bot No Responde
|
||||
```bash
|
||||
# Verificar token de WhatsApp en configuración
|
||||
# Comprobar que el webhook esté configurado
|
||||
# Revisar logs de errores PHP
|
||||
```
|
||||
|
||||
## 📞 Ejemplo de Uso Completo
|
||||
|
||||
### 1. Configuración Inicial
|
||||
```bash
|
||||
# Bot configurado para empresa de servicios
|
||||
# Menús: Servicios, Pagos, Soporte
|
||||
# Respuestas automáticas para palabras clave
|
||||
```
|
||||
|
||||
### 2. Flujo de Usuario
|
||||
```
|
||||
Usuario: "Hola"
|
||||
Bot: "¡Hola! 👋 Bienvenido a nuestro servicio automatizado. Escribe *menu* para ver las opciones disponibles."
|
||||
|
||||
Usuario: "menu"
|
||||
Bot: "📋 Menú Principal
|
||||
1. 💼 Ver servicios disponibles
|
||||
2. 💳 Realizar pago
|
||||
3. 🆘 Contactar soporte
|
||||
0. ❌ Salir"
|
||||
|
||||
Usuario: "1"
|
||||
Bot: "💼 Servicios
|
||||
1. 📋 Consulta de información
|
||||
2. 📞 Agendar cita
|
||||
3. 💰 Cotizar servicio
|
||||
0. 🔙 Volver al menú principal"
|
||||
|
||||
Usuario: "2"
|
||||
Bot: "Para agendar una cita, por favor proporciona tu nombre completo y tu disponibilidad horaria."
|
||||
```
|
||||
|
||||
## 🎨 Personalización
|
||||
|
||||
### Colores y Estilos
|
||||
```css
|
||||
/* Modificar en assets/css/styles.css */
|
||||
:root {
|
||||
--primary-color: #25d366; /* Verde WhatsApp */
|
||||
--secondary-color: #128c7e;
|
||||
--tertiary-color: #075e54;
|
||||
}
|
||||
```
|
||||
|
||||
### Mensajes del Bot
|
||||
```sql
|
||||
-- Modificar mensaje de bienvenida
|
||||
UPDATE system_config
|
||||
SET config_value = 'Tu mensaje personalizado'
|
||||
WHERE config_key = 'welcome_message';
|
||||
```
|
||||
|
||||
## 📈 Monitoreo
|
||||
|
||||
- Dashboard en tiempo real con métricas
|
||||
- Gráficos de actividad por día
|
||||
- Estados de entrega de mensajes
|
||||
- Logs detallados de todas las operaciones
|
||||
|
||||
## 🤝 Soporte
|
||||
|
||||
Para soporte técnico o consultas:
|
||||
- Email: soporte@tuempresa.com
|
||||
- WhatsApp: +57 1 234 5678
|
||||
- Web: www.tuempresa.com
|
||||
**WhatsApp Bot Manager** es un panel administrativo para gestionar bots y envíos de WhatsApp. Desarrollado por U‑Site.app, pensado para instalaciones autohospedadas con PHP y MySQL.
|
||||
|
||||
---
|
||||
|
||||
**Desarrollado con ❤️ para facilitar la comunicación empresarial a través de WhatsApp**
|
||||
## 🔧 Características principales
|
||||
|
||||
© 2025 - Sistema WhatsApp Bot Manager v1.0.0
|
||||
- Gestión de conversaciones y plantillas
|
||||
- Integración con WhatsApp Business API
|
||||
- Control de usuarios y seguridad (protección contra fuerza bruta)
|
||||
- Manejo de archivos multimedia y envíos
|
||||
- Scripts de instalación y migración incluidos
|
||||
|
||||
---
|
||||
|
||||
## ✅ Requisitos
|
||||
|
||||
- PHP 8.0+ (extensiones: PDO/MySQL, mbstring, curl, openssl, json)
|
||||
- MySQL/MariaDB
|
||||
- Servidor web (Apache/Nginx) o PHP built-in para desarrollo
|
||||
|
||||
---
|
||||
|
||||
## 🛠 Instalación rápida (desarrollo)
|
||||
|
||||
1. Clonar el repositorio y entrar en la carpeta:
|
||||
|
||||
```bash
|
||||
git clone <repo-url> whatsapp
|
||||
cd whatsapp
|
||||
```
|
||||
|
||||
2. Configurar la base de datos en `config/config.php` o crear un archivo `.env` en la raíz.
|
||||
|
||||
3. Ejecutar el instalador desde el navegador: `http://tu-servidor/install.php` y seguir los pasos.
|
||||
|
||||
4. Para levantar un servidor de desarrollo rápido:
|
||||
|
||||
```bash
|
||||
php -S 127.0.0.1:8000 -t . >/tmp/php-server.log 2>&1 &
|
||||
# Abre: http://127.0.0.1:8000
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧭 Archivos y scripts útiles
|
||||
|
||||
- `install.php`, `instalar_bd.php` — instalador y creación de tablas
|
||||
- `create_media_table.sql`, `execute_media_table.php` — tabla de media
|
||||
- `config/config.php` — configuración principal y carga de `.env`
|
||||
- `run_tests.php` — pruebas básicas
|
||||
- `deploy.sh` — script de despliegue (producción)
|
||||
- `verify_*` y `diagnostico_*` — páginas de diagnóstico y verificación
|
||||
|
||||
Consulta `README_SETUP.md`, `INSTALACION.md` y `DEPLOYMENT_GUIDE.md` para documentación extendida.
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Personalización de UI
|
||||
|
||||
- Estilos principales: `assets/css/styles.css`
|
||||
- Para ajustar el tamaño global de fuente cambia `html { font-size: ... }` o `body { font-size: ... }`
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Solución rápida de problemas
|
||||
|
||||
- Logs del servidor integrado: `/tmp/php-server.log`
|
||||
- Verificar tokens y configuración con: `verificar_servidor.php`, `verificar_token.php`, `verificar_whatsapp_config.php`
|
||||
- Comprobar tablas con: `verify_media_table.php`, `check_table_structure.php`
|
||||
|
||||
---
|
||||
|
||||
## � Notas de seguridad: directorios de pruebas
|
||||
|
||||
Los recursos de pruebas y depuración (scripts `test_*`, `debug_*`, `diagnostico_*`, `tests/`, `scripts/` de prueba, etc.) han sido movidos al directorio `dev/`. **No** expongas `dev/` en entornos de producción. Recomendaciones:
|
||||
|
||||
- Mantén `dev/` fuera del documento raíz público o protégelo con HTTP auth/.htaccess.
|
||||
- Añade `dev/` y `tmp/` a `.gitignore` y rota credenciales que hayan estado en `CREDENCIALES_BASICO.txt`.
|
||||
- Revisa y elimina cualquier endpoint que active modo `debug` vía parámetros en producción.
|
||||
|
||||
---
|
||||
|
||||
## �📬 Soporte y créditos
|
||||
|
||||
Desarrollado por **U‑Site.app** — https://u-site.app
|
||||
|
||||
Para soporte, abre un issue o contacta al correo de soporte configurado en la app.
|
||||
|
||||
---
|
||||
|
||||
*README corto y enfocado. Revisa los archivos de documentación para guías detalladas.*
|
||||
Reference in New Issue
Block a user