setClientId($client_id); $client->setClientSecret($client_secret); // Construct redirect URI dynamically $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https" : "http"; $host = $_SERVER['HTTP_HOST']; $base_dir = dirname(dirname($_SERVER['PHP_SELF'])); $redirect_uri = $protocol . "://" . $host . $base_dir . "/auth/google_callback.php"; $redirect_uri = str_replace('//auth', '/auth', $redirect_uri); $client->setRedirectUri($redirect_uri); $client->addScope(Google\Service\Calendar::CALENDAR_EVENTS); $client->setAccessType('offline'); $client->setPrompt('consent'); $auth_url = $client->createAuthUrl(); header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL)); exit; ?>