Files
sistema_funcionando_lastwar/admin_send_message.php

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.']);
}