53 lines
1.8 KiB
PHP
Executable File
53 lines
1.8 KiB
PHP
Executable File
<?php
|
|
header('Content-Type: application/json');
|
|
|
|
require_once __DIR__ . '/includes/session_check.php';
|
|
require_once __DIR__ . '/config/config.php';
|
|
require_once __DIR__ . '/includes/db.php';
|
|
require_once __DIR__ . '/src/TelegramSender.php';
|
|
|
|
// Solo para administradores
|
|
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'admin') {
|
|
http_response_code(403);
|
|
echo json_encode(['success' => false, 'error' => 'Acceso denegado.']);
|
|
exit;
|
|
}
|
|
|
|
$chatId = $_POST['chat_id'] ?? null;
|
|
$message = $_POST['message'] ?? null;
|
|
|
|
if (!$chatId || !$message) {
|
|
http_response_code(400);
|
|
echo json_encode(['success' => false, 'error' => 'Faltan parámetros: chat_id y message son requeridos.']);
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$telegram = new TelegramSender($_ENV['TELEGRAM_BOT_TOKEN'], $pdo);
|
|
|
|
// Se envía el mensaje. La clase TelegramSender se encargará de:
|
|
// 1. Formatear el texto si es necesario.
|
|
// 2. Añadir el botón de traducción (true).
|
|
// 3. Registrar la interacción en la base de datos.
|
|
$result = $telegram->sendMessage(
|
|
$chatId,
|
|
htmlspecialchars($message), // Usamos htmlspecialchars para seguridad básica
|
|
['parse_mode' => 'HTML'],
|
|
true, // Añadir botón de traducción
|
|
'es' // El mensaje del admin se asume que es en español
|
|
);
|
|
|
|
if ($result) {
|
|
echo json_encode(['success' => true]);
|
|
} else {
|
|
// El error específico ya se loguea dentro de TelegramSender
|
|
http_response_code(500);
|
|
echo json_encode(['success' => false, 'error' => 'El servicio de Telegram no pudo enviar el mensaje.']);
|
|
}
|
|
|
|
} catch (Exception $e) {
|
|
custom_log("Error fatal en admin_send_message.php: " . $e->getMessage());
|
|
http_response_code(500);
|
|
echo json_encode(['success' => false, 'error' => 'Error interno del servidor al procesar la solicitud.']);
|
|
}
|