up
This commit is contained in:
+33
-12
@@ -67,20 +67,22 @@ if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
|
||||
// Función auxiliar para enviar con media_id
|
||||
function sendMediaByIdToWhatsApp($whatsapp, $recipient, $mediaId, $mediaType, $caption, $filename) {
|
||||
return $whatsapp->sendMediaById($recipient, $mediaId, $mediaType, $caption, $filename);
|
||||
// Pasar skipAutoSave=true para evitar guardado duplicado (lo guardamos manualmente después)
|
||||
return $whatsapp->sendMediaById($recipient, $mediaId, $mediaType, $caption, $filename, true);
|
||||
}
|
||||
|
||||
// Función auxiliar para enviar con link
|
||||
function sendMediaByLinkToWhatsApp($whatsapp, $recipient, $mediaUrl, $mediaType, $caption, $filename) {
|
||||
// Pasar skipAutoSave=true para evitar guardado duplicado (lo guardamos manualmente después)
|
||||
switch ($mediaType) {
|
||||
case 'image':
|
||||
return $whatsapp->sendImageMessage($recipient, $mediaUrl, $caption);
|
||||
return $whatsapp->sendImageMessage($recipient, $mediaUrl, $caption, true);
|
||||
case 'video':
|
||||
return $whatsapp->sendVideoMessage($recipient, $mediaUrl, $caption);
|
||||
return $whatsapp->sendVideoMessage($recipient, $mediaUrl, $caption, true);
|
||||
case 'audio':
|
||||
return $whatsapp->sendAudioMessage($recipient, $mediaUrl);
|
||||
return $whatsapp->sendAudioMessage($recipient, $mediaUrl, true);
|
||||
case 'document':
|
||||
return $whatsapp->sendDocumentMessage($recipient, $mediaUrl, $filename, $caption);
|
||||
return $whatsapp->sendDocumentMessage($recipient, $mediaUrl, $filename, $caption, true);
|
||||
default:
|
||||
throw new Exception('Tipo de media no soportado: ' . $mediaType);
|
||||
}
|
||||
@@ -333,26 +335,45 @@ try {
|
||||
);
|
||||
|
||||
if ($user) {
|
||||
// Determinar content: prioridad filename > caption > descripción por defecto
|
||||
$content = '';
|
||||
if (!empty($filename)) {
|
||||
$content = $filename;
|
||||
} elseif (!empty($caption)) {
|
||||
$content = $caption;
|
||||
} else {
|
||||
// Descripción por defecto según tipo
|
||||
$defaultLabels = [
|
||||
'image' => '[Imagen]',
|
||||
'video' => '[Video]',
|
||||
'audio' => '[Audio]',
|
||||
'document' => '[Documento]'
|
||||
];
|
||||
$content = $defaultLabels[$mediaType] ?? '[Media]';
|
||||
}
|
||||
|
||||
// Datos base para insertar
|
||||
// content: solo caption o nombre de archivo
|
||||
// content: nombre de archivo o caption (nunca JSON)
|
||||
// media_url: ID de WhatsApp si está disponible, sino la URL original
|
||||
$conversationData = [
|
||||
'user_id' => $user['id'],
|
||||
'message_id' => $sentMessageId,
|
||||
'direction' => 'outgoing',
|
||||
'message_type' => $mediaType,
|
||||
'content' => $caption ?: ($filename ?: ''),
|
||||
'content' => $content,
|
||||
'media_url' => isset($uploaded_media_id) ? $uploaded_media_id : $mediaUrl,
|
||||
'whatsapp_media_id' => $uploaded_media_id ?? null,
|
||||
'status' => 'sent',
|
||||
'created_at' => date('Y-m-d H:i:s')
|
||||
];
|
||||
|
||||
// Intentar añadir filename solo si la columna existe
|
||||
// TODO: Ejecutar migración add_filename_to_conversations.sql
|
||||
// ALTER TABLE conversations ADD COLUMN filename VARCHAR(255) NULL AFTER media_url;
|
||||
|
||||
error_log("send_media_message.php - Guardando en BD: " . json_encode($conversationData));
|
||||
// Log detallado para debugging
|
||||
error_log("send_media_message.php - Guardando mensaje multimedia:");
|
||||
error_log(" - content: " . $content);
|
||||
error_log(" - media_url: " . ($conversationData['media_url'] ?? 'null'));
|
||||
error_log(" - whatsapp_media_id: " . ($conversationData['whatsapp_media_id'] ?? 'null'));
|
||||
error_log(" - media_type: " . $mediaType);
|
||||
smm_log("Saving to DB - content: {$content}, media_url: " . ($conversationData['media_url'] ?? 'null'));
|
||||
|
||||
try {
|
||||
$db->insert('conversations', $conversationData);
|
||||
|
||||
Reference in New Issue
Block a user