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:
co-authored by
Claude Sonnet 4.6
parent
12c790fb5c
commit
34c6d2e643
@@ -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 [
|
||||
|
||||
Reference in New Issue
Block a user