Discord und Telegram
Diese Seite ist nur für Administratoren zugänglich.
'; return; } $message = null; $error = null; if ($_SERVER['REQUEST_METHOD'] === 'POST') { verify_csrf(); if (!$isAdmin) { $error = 'Einstellungen ändern darf nur ein Administrator.'; } else { $action = $_POST['action'] ?? ''; if ($action === 'save') { $key = strtolower(trim((string) ($_POST['discord_key'] ?? ''))); if ($key !== '' && !preg_match('/^[0-9a-f]{64}$/', $key)) { $error = 'Der öffentliche Schlüssel von Discord besteht aus 64 Zeichen (0–9, a–f).'; } else { plugin_set_setting(COMMUNITYBOT, 'discord_key', $key); plugin_set_setting(COMMUNITYBOT, 'discord_app', preg_replace('/[^0-9]/', '', (string) ($_POST['discord_app'] ?? ''))); // Geheimnisse: leeres Feld lässt den bisherigen Wert stehen foreach (['discord_token', 'telegram_token'] as $k) { $v = trim((string) ($_POST[$k] ?? '')); if ($v !== '') communitybot_set_secret($k, $v); } if (!empty($_POST['clear_discord'])) communitybot_set_secret('discord_token', ''); if (!empty($_POST['clear_telegram'])) { communitybot_set_secret('telegram_token', ''); communitybot_set_secret('telegram_secret', ''); } plugin_set_setting(COMMUNITYBOT, 'department_id', (string) (int) ($_POST['department_id'] ?? 0)); plugin_set_setting(COMMUNITYBOT, 'priority_id', (string) (int) ($_POST['priority_id'] ?? 0)); plugin_set_setting(COMMUNITYBOT, 'limit', (string) max(1, min(50, (int) ($_POST['limit'] ?? 3)))); plugin_set_setting(COMMUNITYBOT, 'notify', !empty($_POST['notify']) ? '1' : '0'); $message = 'Einstellungen gespeichert.'; } } elseif ($action === 'discord_register') { $r = communitybot_discord_register(); if ($r['ok']) $message = $r['message']; else $error = $r['message']; } elseif ($action === 'telegram_register') { $r = communitybot_telegram_register(); if ($r['ok']) $message = $r['message']; else $error = $r['message']; } } } $cfg = communitybot_config(); $depts = $pdo->query('SELECT id, name FROM departments ORDER BY name')->fetchAll(); $prios = $pdo->query('SELECT id, name FROM priorities ORDER BY sort_order')->fetchAll(); $recent = $pdo->query('SELECT l.*, t.ticket_number, t.subject, t.status FROM plugin_communitybot_links l JOIN tickets t ON t.id = l.ticket_id ORDER BY l.id DESC LIMIT 30')->fetchAll(); $week = (int) $pdo->query("SELECT COUNT(*) FROM plugin_communitybot_links WHERE created_at >= '" . date('Y-m-d H:i:s', time() - 7 * 86400) . "'")->fetchColumn(); ?>

Discord und Telegram

Zustand

Tickets in den letzten 7 Tagen über Discord oder Telegram angelegt.

Discord: Schlüssel eingetragen' : 'Schlüssel fehlt') ?> · Benachrichtigung per Direktnachricht: Bot-Token fehlt' ?>
Telegram: Token eingetragen' : 'Token fehlt' ?>
Auf diesem Server fehlt die PHP-Erweiterung „sodium“, Discord-Anfragen können nicht geprüft werden.

Adressen für die Einrichtung (nur aus dem Internet erreichbar, mit https):
Discord „Interactions Endpoint URL“:
Telegram wird mit dem Knopf unten automatisch verbunden.

Einstellungen

Discord

Im Discord Developer Portal eine Anwendung anlegen. „General Information“ liefert die Anwendungs-ID und den öffentlichen Schlüssel (Public Key), „Bot“ das Token. Als „Interactions Endpoint URL“ die Adresse oben eintragen.

Telegram

Bei @BotFather mit /newbot einen Bot anlegen und das Token hier eintragen.

Neue Tickets

Verbinden

Erst speichern, dann verbinden.

Zuletzt angelegt

Noch keine Tickets über Discord oder Telegram.

TicketKanalAbsenderStatusAngelegt
#