$authSubUrl = Zend_Gdata_AuthSub::getAuthSubTokenUri($next, $scope, $secure, $session); header("HTTP/1.0 307 Temporary redirect"); header("Location: " . $authSubUrl); exit; } else { try { $client = new Zend_Gdata_HttpClient(); $pathToKey = sfConfig::get('sf_root_dir') . '/' . sfConfig::get('app_googleCalendarIntegration_privateKeyPath'); $client->setAuthSubPrivateKeyFile($pathToKey, null, true); $sessionToken = Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET['token'], $client); } catch (Exception $e) { sfErrorNotifier::alert("Google Calendar Init: " . $e->getMessage()); $this->redirect('default', array('module' => 'googleCalendarIntegration', 'action' => 'step3Error')); } $redirectUrl = ''; if ($sessionToken) { $loggedInUser = PcUserPeer::getLoggedInUser(); if ($loggedInUser) { $googleCalendarInterface = new GoogleCalendarInterface($loggedInUser); $googleCalendarInterface->resetDbEntry(); $googleCalendarInterface->setSessionToken($sessionToken); } $configuration->loadHelpers('Url'); $redirectUrl = 'http://' . sfConfig::get('app_site_url') . '/' . sfConfig::get('app_accountApp_frontController') . '/googleCalendarIntegration/step3'; } else { // something wrong $configuration->loadHelpers('Url'); $redirectUrl = 'http://' . sfConfig::get('app_site_url') . ($redirectUrl = 'http://' . sfConfig::get('app_site_url') . '/' . sfConfig::get('app_accountApp_frontController') . '/googleCalendarIntegration/step3Error'); } header("Location: {$redirectUrl}"); }