@smartuy/builderbot-provider-waha
Version:
WAHA (WhatsApp HTTP API) provider for BuilderBot desarrollado por SmartUY
93 lines (92 loc) • 4.26 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const bot_1 = require("@builderbot/bot");
const WahaProvider_1 = require("../src/WahaProvider");
const dotenv_1 = __importDefault(require("dotenv"));
// Cargar variables de entorno
dotenv_1.default.config();
// Crear aplicación Express
const app = (0, express_1.default)();
app.use(express_1.default.json());
/**
* Ejemplo de uso del provider Waha para BuilderBot
* Desarrollado por Juan Pablo (BigJuanPa) de SmartUY
*
* Este ejemplo muestra cómo configurar un bot simple con flujos básicos
* utilizando el provider de Waha para WhatsApp.
*/
// Flujo de bienvenida
const bienvenidaFlow = (0, bot_1.addKeyword)(['hola', 'buenas', 'saludos'])
.addAnswer('¡Hola! Bienvenido al bot de ejemplo de SmartUY.')
.addAnswer('Este provider para Waha fue desarrollado por Juan Pablo (BigJuanPa) de SmartUY.')
.addAnswer('Escribe *ayuda* para ver los comandos disponibles.');
// Flujo de ayuda
const ayudaFlow = (0, bot_1.addKeyword)(['ayuda', 'help', 'comandos'])
.addAnswer('*Comandos disponibles:*')
.addAnswer('1. *hola* - Mensaje de bienvenida')
.addAnswer('2. *ayuda* - Ver esta lista de comandos')
.addAnswer('3. *info* - Información sobre SmartUY')
.addAnswer('Desarrollado por Juan Pablo (BigJuanPa) de SmartUY');
// Flujo de información
const infoFlow = (0, bot_1.addKeyword)(['info', 'información', 'empresa'])
.addAnswer('*Sobre SmartUY*')
.addAnswer('SmartUY es una empresa líder en soluciones tecnológicas en Uruguay.')
.addAnswer('Nos especializamos en desarrollo de software, inteligencia artificial y automatización de procesos.')
.addAnswer('Para más información, visita [smartuy.com](https://smartuy.com)');
// Función principal
const main = () => __awaiter(void 0, void 0, void 0, function* () {
try {
console.log('Iniciando bot de ejemplo de SmartUY...');
// Configuración de Waha
const wahaConfig = {
url: process.env.WAHA_API_URL || 'https://tu-servidor-waha.com',
token: process.env.WAHA_API_KEY || 'tu-api-key',
session: process.env.WAHA_SESSION || 'default'
};
console.log('Usando configuración de Waha:', wahaConfig);
// Crear provider
const adapterProvider = new WahaProvider_1.WahaProvider(wahaConfig);
// Inicializar webhook
adapterProvider.initWebhook(app);
// Crear flows
const adapterFlow = (0, bot_1.createFlow)([
bienvenidaFlow,
ayudaFlow,
infoFlow
]);
// Crear base de datos
const adapterDB = new bot_1.MemoryDB();
// Crear bot
const bot = yield (0, bot_1.createBot)({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
});
console.log('Bot creado exitosamente, ahora listo para recibir mensajes');
// Iniciar servidor
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Servidor escuchando en puerto ${PORT}`);
console.log(`URL del Webhook: /webhook/waha`);
console.log('Bot de ejemplo de SmartUY desarrollado por BigJuanPa');
});
}
catch (error) {
console.error('Error al inicializar el bot:', error);
}
});
// Iniciar bot
main();