fix: documentos recibidos en chat devuelven 401

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 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-03 17:30:02 -05:00
co-authored by Claude Sonnet 4.6
parent 12c790fb5c
commit 34c6d2e643
+7 -5
View File
@@ -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 [