settingModel = new Setting(); $settings = $this->settingModel->getAllFlat(); $this->lineToken = $settings['line_notify_token'] ?? null; $this->telegramToken = $settings['telegram_bot_token'] ?? null; $this->telegramChatId = $settings['telegram_chat_id'] ?? null; } /** * Send a simple text message to all configured platforms */ public function sendToAll($message) { if (!empty($this->lineToken)) { $this->sendToLine($message); } if (!empty($this->telegramToken) && !empty($this->telegramChatId)) { $this->sendToTelegram($message); } } /** * Send message via LINE Notify */ private function sendToLine($message) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://notify-api.line.me/api/notify"); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['message' => "\n" . $message])); $headers = [ 'Content-type: application/x-www-form-urlencoded', 'Authorization: Bearer ' . $this->lineToken, ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); return $result; } /** * Send message via Telegram Bot */ private function sendToTelegram($message) { $url = "https://api.telegram.org/bot" . $this->telegramToken . "/sendMessage"; $data = [ 'chat_id' => $this->telegramChatId, 'text' => $message, 'parse_mode' => 'HTML' ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); return $result; } }