This commit is contained in:
Lizandro Guarnizo
2026-02-06 09:38:36 -05:00
parent 8324a014c0
commit 276af13387
4 changed files with 35 additions and 2 deletions
+8 -2
View File
@@ -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;
}
+14
View File
@@ -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)) {
+7
View File
@@ -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);
+6
View File
@@ -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