@smartuy/builderbot-provider-waha
Version:
WAHA (WhatsApp HTTP API) provider for BuilderBot desarrollado por SmartUY
148 lines (106 loc) • 4.1 kB
Markdown
# @smartuy/builderbot-provider-waha
## Versión 1.2.7
### Desarrollado por SmartUY
Este paquete fue creado y es mantenido por [SmartUY](https://smartuy.com), empresa líder en soluciones tecnológicas. Desarrollado por Juan Pablo (BigJuanPa) de SmartUY.
### Nuevas características
- Manejo mejorado de eventos de sesión y mensajes
- Soporte para estados de conexión
- Mejor manejo de errores y logging
- Integración completa con BuilderBot
- Validación de emails y entradas con fallBack()
- Configuración segura con variables de entorno
### Instalación
Para un nuevo proyecto:
```
npx @smartuy/builderbot-provider-waha init mi-bot
```
Para un proyecto existente:
```
npm install @smartuy/builderbot-provider-waha@latest
```
**IMPORTANTE**: Después de instalar, ejecuta `npm install` para instalar todas las dependencias necesarias.
## Configuración
Crea un archivo `.env` con las siguientes variables:
```
WAHA_API_URL=https://tu-servidor-waha.com
WAHA_API_KEY=tu-api-key
WAHA_SESSION=default
```
## Uso
### Flujo simple
```typescript
import { createBot, createFlow, MemoryDB, addKeyword } from '@builderbot/bot';
import { WahaProvider } from '@smartuy/builderbot-provider-waha';
import express from 'express';
import dotenv from 'dotenv';
// Cargar variables de entorno
dotenv.config();
// Crear app Express para webhook
const app = express();
app.use(express.json());
// Definir un flujo simple
const bienvenidaFlow = addKeyword(['hola', 'buenas', 'saludos'])
.addAnswer('¡Hola! Bienvenido al bot de SmartUY. ¿En qué podemos ayudarte hoy?');
// Inicializar el bot
const main = async () => {
// Configurar el provider
const wahaConfig = {
url: process.env.WAHA_API_URL,
token: process.env.WAHA_API_KEY,
session: process.env.WAHA_SESSION
};
// Crear provider
const adapterProvider = new WahaProvider(wahaConfig);
// Inicializar webhook
adapterProvider.initWebhook(app);
// Crear flow
const adapterFlow = createFlow([bienvenidaFlow]);
// Crear base de datos
const adapterDB = new MemoryDB();
// Crear bot
const bot = await createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
});
// Iniciar servidor
app.listen(3000, () => {
console.log('¡Servidor webhook de SmartUY ejecutándose en puerto 3000!');
});
};
main();
```
### Verificar estado de conexión
El provider verifica automáticamente el estado de la sesión de WhatsApp y la inicia si es necesario.
## Eventos
El provider maneja los siguientes eventos:
### 1. Estado de Sesión
- Verifica si la sesión está activa
- Inicia la sesión automáticamente si está detenida
- Maneja errores de conexión
### 2. Mensajes
- Recibe mensajes a través del webhook
- Procesa y formatea los mensajes para BuilderBot
- Emite los mensajes al flujo del bot
## Características
- **Webhook integrado**: Recibe mensajes de WhatsApp automáticamente
- **Manejo de estado**: Almacena información del usuario entre mensajes
- **Validación de entradas**: Utiliza fallBack() para validar emails y otras entradas
- **Flujos de conversación**: Implementa flujos de bienvenida, registro y ayuda
- **Seguridad**: Usa variables de entorno para datos sensibles
- **CLI**: Herramienta para crear proyectos rápidamente
## Migración
Si vienes de una versión anterior, asegúrate de:
1. Actualizar a la última versión con `npm install @smartuy/builderbot-provider-waha@latest`
2. Ejecutar `npm install` para actualizar todas las dependencias
3. Usar las nuevas funciones de validación con fallBack()
4. Configurar correctamente las variables de entorno
## Recursos
- [Documentación de BuilderBot](https://builderbot.dev)
- [API de WAHA](https://github.com/waha-api/waha)
- [SmartUY](https://smartuy.com)
## Soporte
Para soporte, contacta a SmartUY o abre un issue en el repositorio.
Desarrollado con ❤️ por Juan Pablo (BigJuanPa) de SmartUY.
## Licencia
MIT