From 34c6d2e6438ba333b516488306eae552d7a59c22 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Fri, 3 Jul 2026 17:30:02 -0500 Subject: [PATCH] fix: documentos recibidos en chat devuelven 401 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Las URLs de CDN de WhatsApp (lookaside.fbsbx.com) requieren Authorization Bearer. chat_get_messages.php las exponía directamente al browser, que no puede añadir ese header, resultando en 401 "Authentication Error". Ahora siempre se enrutan por /api/version/media-url.php (proxy existente) que: - Sirve el archivo local si existe en disco - Hace fetch con el token de WA si no está en local - No requiere sesión para peticiones GET del browser Co-Authored-By: Claude Sonnet 4.6 --- modules/turnero/api/chat_get_messages.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/turnero/api/chat_get_messages.php b/modules/turnero/api/chat_get_messages.php index 6853df2..f14ad33 100644 --- a/modules/turnero/api/chat_get_messages.php +++ b/modules/turnero/api/chat_get_messages.php @@ -75,13 +75,15 @@ try { $earliestId = $rows[0]['id'] ?? null; $data = array_map(function($m) { - $mediaUrl = $m['media_url'] ?? null; - $external = null; - if ($mediaUrl) { + $mediaUrl = $m['media_url'] ?? null; + $localFile = $m['local_file'] ?? null; + $external = null; + if ($mediaUrl && !$localFile) { + // WhatsApp CDN URLs require Bearer token — always proxy through media-url.php if (preg_match('#^https?://#i', $mediaUrl)) { - $external = $mediaUrl; + $external = '/api/version/media-url.php?url=' . urlencode($mediaUrl); } else { - $external = '../../../api/get_media.php?id=' . urlencode($mediaUrl); + $external = '/api/version/media-url.php?id=' . urlencode($mediaUrl); } } return [