diff --git a/api/get_media.php b/api/get_media.php index 64193ec..fccb9df 100644 --- a/api/get_media.php +++ b/api/get_media.php @@ -18,9 +18,15 @@ if (!$isGet || $wantsJson) { header('Content-Type: application/json; charset=utf-8'); $mediaId = $_GET['id'] ?? ($_POST['id'] ?? null); -if (!$mediaId) { + +// Validar que mediaId no esté vacío y sea válido +if (empty($mediaId) || !is_string($mediaId) || trim($mediaId) === '') { + error_log("get_media.php: mediaId inválido o vacío recibido: " . var_export($mediaId, true)); http_response_code(400); - echo json_encode(['error' => 'media id requerido']); + echo json_encode([ + 'error' => 'Invalid media ID', + 'hint' => 'Media ID cannot be empty or invalid' + ]); exit; } diff --git a/api/version/media-url.php b/api/version/media-url.php index d103c34..ca8f377 100644 --- a/api/version/media-url.php +++ b/api/version/media-url.php @@ -176,6 +176,20 @@ if ($providedUrl) { } else { $token = getConfigFromDB('whatsapp_token', ''); $apiUrl = rtrim(getConfigFromDB('whatsapp_api_url', 'https://graph.facebook.com/v22.0/'), '/'); + + // Validar que mediaId no esté vacío antes de construir el endpoint + if (empty($mediaId) || !is_string($mediaId) || trim($mediaId) === '') { + media_log("Invalid or empty mediaId provided: " . var_export($mediaId, true)); + http_response_code(400); + header('Content-Type: application/json; charset=utf-8'); + echo json_encode([ + 'success' => false, + 'error' => 'Invalid media ID', + 'hint' => 'Media ID cannot be empty or invalid' + ]); + exit; + } + $endpoint = "{$apiUrl}/{$mediaId}"; if (empty($token)) { diff --git a/services/BotServiceLab.php b/services/BotServiceLab.php index db5305c..f084536 100644 --- a/services/BotServiceLab.php +++ b/services/BotServiceLab.php @@ -199,6 +199,13 @@ class BotServiceLab { $phoneNumber = $user['phone_number']; + // Validar que mediaId no esté vacío antes de intentar descargar + if (empty($mediaId) || trim($mediaId) === '') { + error_log("BotServiceLab: mediaId vacío recibido para usuario {$phoneNumber}"); + $this->sendMessage($phoneNumber, "❌ No se recibió correctamente el archivo. Por favor, envíelo nuevamente."); + return; + } + try { // Descargar el archivo desde WhatsApp $mediaUrl = $this->whatsappService->downloadMedia($mediaId); diff --git a/services/WhatsAppService.php b/services/WhatsAppService.php index 56d2f80..8c65d2f 100644 --- a/services/WhatsAppService.php +++ b/services/WhatsAppService.php @@ -828,6 +828,12 @@ class WhatsAppService */ public function downloadMedia($mediaId) { + // Validar que mediaId no esté vacío ANTES de hacer la llamada + if (empty($mediaId) || !is_string($mediaId) || trim($mediaId) === '') { + error_log("downloadMedia: mediaId inválido o vacío: " . var_export($mediaId, true)); + throw new Exception("Media ID no puede estar vacío"); + } + $url = $this->apiUrl . $mediaId; // Primero obtener información del archivo