191 lines
8.0 KiB
PHP
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 'messages'</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>";
|
|
?>
|