Files
whatsapp/configurar_whatsapp.php
2026-01-21 08:28:54 -05:00

191 lines
8.0 KiB
PHP

<?php
/**
* 🔧 CONFIGURADOR TOKEN WHATSAPP
* Herramienta para configurar el token de WhatsApp Business API
*/
// Headers para mostrar errores
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo "<!DOCTYPE html><html><head><meta charset='UTF-8'>";
echo "<title>🔧 Configurar Token WhatsApp</title>";
echo "<style>body{font-family:monospace;margin:20px;background:#000;color:#00ff00}";
echo ".ok{color:#00ff00}.error{color:#ff0040}.warning{color:#ffaa00}";
echo ".section{background:#111;padding:15px;margin:10px 0;border:1px solid #333}";
echo "input[type=text]{width:100%;padding:10px;background:#222;color:#fff;border:1px solid #555;margin:5px 0}";
echo "button{padding:10px 20px;background:#333;color:#fff;border:1px solid #555;cursor:pointer}";
echo "button:hover{background:#555}";
echo ".form-group{margin:15px 0}";
echo "</style></head><body>";
echo "<h1>🔧 CONFIGURADOR TOKEN WHATSAPP</h1>";
// Manejar formulario
if ($_POST) {
echo "<div class='section'>";
echo "<h2>💾 GUARDANDO CONFIGURACIÓN...</h2>";
$new_token = trim($_POST['whatsapp_token'] ?? '');
$new_phone_id = trim($_POST['phone_id'] ?? '');
$new_webhook_token = trim($_POST['webhook_token'] ?? '');
if (empty($new_token)) {
echo "<div class='error'>❌ El token de WhatsApp es obligatorio</div>";
} elseif (empty($new_phone_id)) {
echo "<div class='error'>❌ El Phone Number ID es obligatorio</div>";
} else {
// Crear archivo .env
$env_content = "# WhatsApp Business API Configuration\n";
$env_content .= "WHATSAPP_TOKEN=$new_token\n";
$env_content .= "WHATSAPP_PHONE_NUMBER_ID=$new_phone_id\n";
if (!empty($new_webhook_token)) {
$env_content .= "WEBHOOK_VERIFY_TOKEN=$new_webhook_token\n";
}
$env_content .= "\n# Generated on: " . date('Y-m-d H:i:s') . "\n";
if (file_put_contents('.env', $env_content) !== false) {
echo "<div class='ok'>✅ Archivo .env creado exitosamente</div>";
echo "<div class='ok'>✅ Configuración guardada</div>";
// Test inmediato
echo "<div class='warning'>🔄 Probando configuración...</div>";
// Simular carga de .env
$_ENV['WHATSAPP_TOKEN'] = $new_token;
$_ENV['WHATSAPP_PHONE_NUMBER_ID'] = $new_phone_id;
if (!empty($new_webhook_token)) {
$_ENV['WEBHOOK_VERIFY_TOKEN'] = $new_webhook_token;
}
echo "<div class='warning'>📋 <a href='diagnostico_whatsapp.php' style='color:#ffaa00'>Verificar configuración aquí</a></div>";
} else {
echo "<div class='error'>❌ Error al crear archivo .env</div>";
echo "<div class='warning'>Verifica permisos de escritura</div>";
}
}
echo "</div>";
}
// Cargar configuración actual
$current_token = '';
$current_phone_id = '';
$current_webhook_token = '';
try {
require_once 'config/config.php';
$current_token = defined('WHATSAPP_TOKEN') ? WHATSAPP_TOKEN : '';
$current_phone_id = defined('WHATSAPP_PHONE_NUMBER_ID') ? WHATSAPP_PHONE_NUMBER_ID : '';
$current_webhook_token = defined('WEBHOOK_VERIFY_TOKEN') ? WEBHOOK_VERIFY_TOKEN : '';
} catch (Exception $e) {
echo "<div class='error'>❌ Error cargando configuración: " . htmlspecialchars($e->getMessage()) . "</div>";
}
// Mostrar configuración actual
echo "<div class='section'>";
echo "<h2>⚙️ CONFIGURACIÓN ACTUAL</h2>";
if ($current_token === 'TU_TOKEN_DE_WHATSAPP_AQUI' || empty($current_token)) {
echo "<div class='error'>❌ Token no configurado</div>";
} else {
$token_preview = substr($current_token, 0, 10) . '...' . substr($current_token, -10);
echo "<div class='warning'>🔑 Token actual: $token_preview</div>";
}
if ($current_phone_id === 'TU_PHONE_ID_AQUI' || empty($current_phone_id)) {
echo "<div class='error'>❌ Phone ID no configurado</div>";
} else {
echo "<div class='ok'>✅ Phone ID: $current_phone_id</div>";
}
echo "</div>";
// Formulario de configuración
echo "<div class='section'>";
echo "<h2>📝 NUEVA CONFIGURACIÓN</h2>";
echo "<form method='POST'>";
echo "<div class='form-group'>";
echo "<label style='color:#ffaa00'><strong>🔑 Token de WhatsApp Business API:</strong></label>";
echo "<input type='text' name='whatsapp_token' placeholder='EAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' value=''>";
echo "<div class='warning'>• Obtenlo de: Facebook Developers > Tu App > WhatsApp > API Setup</div>";
echo "<div class='warning'>• Debe comenzar con 'EAA'</div>";
echo "<div class='warning'>• Longitud típica: 100-300 caracteres</div>";
echo "</div>";
echo "<div class='form-group'>";
echo "<label style='color:#ffaa00'><strong>📱 Phone Number ID:</strong></label>";
echo "<input type='text' name='phone_id' placeholder='1234567890123456' value=''>";
echo "<div class='warning'>• Obtenlo de: Facebook Developers > Tu App > WhatsApp > API Setup</div>";
echo "<div class='warning'>• Solo números, típicamente 15-16 dígitos</div>";
echo "</div>";
echo "<div class='form-group'>";
echo "<label style='color:#ffaa00'><strong>🔐 Webhook Verify Token (opcional):</strong></label>";
echo "<input type='text' name='webhook_token' placeholder='mi_token_secreto_123' value='$current_webhook_token'>";
echo "<div class='warning'>• Token que configuraste en Facebook para verificar webhook</div>";
echo "<div class='warning'>• Puede ser cualquier string secreto</div>";
echo "</div>";
echo "<div class='form-group'>";
echo "<button type='submit'>💾 Guardar Configuración</button>";
echo "</div>";
echo "</form>";
echo "</div>";
// Instrucciones detalladas
echo "<div class='section'>";
echo "<h2>📖 INSTRUCCIONES PASO A PASO</h2>";
echo "<div class='warning'><strong>1. CREAR APLICACIÓN DE WHATSAPP:</strong></div>";
echo "<div class='ok'>• Ve a <a href='https://developers.facebook.com/' style='color:#ffaa00'>https://developers.facebook.com/</a></div>";
echo "<div class='ok'>• Haz clic en 'Create App'</div>";
echo "<div class='ok'>• Selecciona 'Business' como tipo de app</div>";
echo "<div class='ok'>• Dale un nombre a tu aplicación</div>";
echo "<br><div class='warning'><strong>2. CONFIGURAR WHATSAPP BUSINESS API:</strong></div>";
echo "<div class='ok'>• En tu app, busca 'WhatsApp' en productos</div>";
echo "<div class='ok'>• Haz clic en 'Set up' o 'Configurar'</div>";
echo "<div class='ok'>• Ve a la sección 'API Setup'</div>";
echo "<br><div class='warning'><strong>3. OBTENER CREDENCIALES:</strong></div>";
echo "<div class='ok'>• <strong>Temporary access token:</strong> Copia este token completo</div>";
echo "<div class='ok'>• <strong>Phone number ID:</strong> Copia el ID del número de prueba</div>";
echo "<div class='ok'>• <strong>From phone number:</strong> Anota este número</div>";
echo "<br><div class='warning'><strong>4. CONFIGURAR WEBHOOK:</strong></div>";
echo "<div class='ok'>• URL del webhook: https://tudominio.com/api/webhook.php</div>";
echo "<div class='ok'>• Verify token: El mismo que ingreses arriba</div>";
echo "<div class='ok'>• Suscríbete a 'conversations'</div>";
echo "<br><div class='error'><strong>⚠️ IMPORTANTE:</strong></div>";
echo "<div class='error'>• El token temporal expira en 24 horas</div>";
echo "<div class='error'>• Para producción necesitas generar un token permanente</div>";
echo "<div class='error'>• Verifica que tu dominio tenga HTTPS</div>";
echo "</div>";
// Estado del archivo .env
echo "<div class='section'>";
echo "<h2>📄 ESTADO ARCHIVO .ENV</h2>";
if (file_exists('.env')) {
echo "<div class='ok'>✅ Archivo .env existe</div>";
$env_content = file_get_contents('.env');
echo "<div class='warning'>📋 Contenido actual:</div>";
echo "<pre style='background:#222;padding:10px;color:#ccc'>" . htmlspecialchars($env_content) . "</pre>";
} else {
echo "<div class='warning'>⚠️ Archivo .env no existe</div>";
echo "<div class='warning'>Se creará automáticamente al guardar</div>";
}
echo "</div>";
echo "</body></html>";
?>