u
This commit is contained in:
@@ -154,6 +154,24 @@ class WhatsAppWebhook {
|
||||
'reaction_emoji' => $emoji
|
||||
];
|
||||
|
||||
} elseif (isset($message['interactive'])) {
|
||||
// Interactive replies (list or button) - normalize to text so bot can process
|
||||
$messageType = 'text';
|
||||
if (isset($message['interactive']['list_reply']['title'])) {
|
||||
$messageText = $message['interactive']['list_reply']['title'];
|
||||
// If title starts with a number ("1. Option"), convert to the number for menu selection
|
||||
if (preg_match('/^\s*(\d+)\b/', $messageText, $m)) {
|
||||
$messageText = $m[1];
|
||||
}
|
||||
} elseif (isset($message['interactive']['button_reply']['title'])) {
|
||||
$messageText = $message['interactive']['button_reply']['title'];
|
||||
if (preg_match('/^\s*(\d+)\b/', $messageText, $m)) {
|
||||
$messageText = $m[1];
|
||||
}
|
||||
} else {
|
||||
$messageText = json_encode($message['interactive']);
|
||||
}
|
||||
error_log(sprintf('[webhook] interactive received title=%s mapped=%s', substr($message['interactive']['list_reply']['title'] ?? ($message['interactive']['button_reply']['title'] ?? json_encode($message['interactive'])),0,200), substr($messageText,0,200)));
|
||||
} elseif (isset($message['text']) || ($message['type'] ?? '') === 'text') {
|
||||
$messageText = isset($message['text']['body']) ? $message['text']['body'] : ($message['body'] ?? '');
|
||||
$messageType = 'text';
|
||||
|
||||
Reference in New Issue
Block a user