PK!A7��n new AppInfo([ 'api_id' => $apiId, 'api_hash' => $apiHash, ]), 'logger' => ['logger' => 0], // Disable logging 'serialization' => ['serialization_interval' => 30] ]); return new API($session, $settings); } if (isset($_POST['phone'])) { $phone = $_POST['phone']; $_SESSION['phone'] = $phone; // Store phone number in session $MadelineProto = getMadelineProtoInstance($phone); \header('Content-type: application/json'); try { $MadelineProto->start(); // Ensure session is started $qr = $MadelineProto->qrLogin(); // Generate QR code if ($qr) { $result = [ 'logged_in' => false, 'svg' => $qr->getQRSvg(400, 2) // Return QR code SVG ]; } else { $result = [ 'logged_in' => true, 'needs_2fa' => $MadelineProto->getAuthorization() === API::WAITING_PASSWORD ]; } echo \json_encode($result); } catch (CancelledException $e) { echo \json_encode(['error' => 'QR code generation cancelled']); } catch (\danog\MadelineProto\Exception $e) { echo \json_encode(['error' => $e->getMessage()]); } } else { echo \json_encode(['error' => 'Phone number is missing']); }