This commit is contained in:
lizandrogd
2026-01-21 02:22:29 -05:00
parent 3fffb0d023
commit b1961f0116
35 changed files with 1006 additions and 122 deletions
+24 -4
View File
@@ -100,7 +100,7 @@ class WhatsAppWebhook {
if (!isset($value['messages'])) {
return;
}
foreach ($value['messages'] as $message) {
$phoneNumber = $message['from'];
$messageId = $message['id'];
@@ -134,6 +134,13 @@ class WhatsAppWebhook {
$emoji = $message['reaction']['emoji'] ?? '';
$reactionTo = $message['reaction']['message_id'] ?? '';
$messageText = json_encode(['emoji' => $emoji, 'message_id' => $reactionTo]);
// Guardar campos específicos para reacciones
$extraFields = [
'reaction_to_message_id' => $reactionTo ? intval($reactionTo) : null,
'reaction_emoji' => $emoji
];
} elseif (isset($message['text'])) {
$messageText = $message['text']['body'];
$messageType = 'text';
@@ -155,15 +162,28 @@ class WhatsAppWebhook {
}
// Guardar mensaje en base de datos
$this->saveMessage([
$saveData = [
'user_id' => $user['id'],
'message_id' => $messageId,
'direction' => 'incoming',
'message_type' => $messageType,
'content' => $messageText,
'media_url' => $mediaUrl,
'status' => 'received'
]);
'status' => 'received',
'is_read' => 0
];
// Si el mensaje incluye contexto (es respuesta a otro mensaje)
if (isset($message['context']) && isset($message['context']['id'])) {
$saveData['reply_to_message_id'] = $message['context']['id'];
}
// Añadir campos extra (si se detectaron)
if (isset($extraFields) && is_array($extraFields)) {
$saveData = array_merge($saveData, $extraFields);
}
$this->saveMessage($saveData);
// Procesar con bot (protección contra excepciones externas)
try {