Bot Discord - Commit completo con todos los cambios
This commit is contained in:
52
admin_send_message.php
Executable file
52
admin_send_message.php
Executable file
@@ -0,0 +1,52 @@
|
||||
<?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.']);
|
||||
}
|
||||
Reference in New Issue
Block a user