/** * Returns a Facebook api instance. * * @return Facebook The instance */ public static function getFacebook() { if (null === self::$facebook) { self::$facebook = new Facebook(array( 'appId' => sfConfig::get('app_facebook_appId'), 'secret' => sfConfig::get('app_facebook_secret'), 'cookie' => sfConfig::get('app_facebook_cookie'), )); } return self::$facebook; }
/** * If a <code>Facebook</code> session if open signout from Facebook * then redirect to <code>sfGuardAuthActions</code> signout. * Else forward to <code>sfGuardAuthActions</code> signout. * * @param sfWebRequest $request */ public function executeSignout($request) { $facebook = kdDoctrineGuardFacebookConnect::getFacebook(); $url = $this->getContext()->getRouting()->generate('sf_guard_signout', array(), true); if ($facebook->getSession()) { $url = $facebook->getLogoutUrl(array ( 'next' => $url )); $this->redirect($url); } $this->forward('sfGuardAuth', 'signout'); }
/** * Executes the filter and chains. * * @param sfFilterChain $filterChain */ public function execute($filterChain) { if ($this->isFirstCall() && $this->context->getUser()->isAnonymous()) { $facebook = kdDoctrineGuardFacebookConnect::getFacebook(); $uid = $facebook->getUser(); try { $me = $facebook->api('/me'); if ($me) { $sfGuardUser = kdDoctrineGuardFacebookConnect::updateOrCreateUser($me); $this->context->getUser()->signIn($sfGuardUser); } } catch (FacebookApiException $ex) { $this->getContext()->getLogger()->err($ex); } } $filterChain->execute(); }
/** * Displays the connection form with a Facebook connect button */ public function executeSignin_form() { $this->facebook = kdDoctrineGuardFacebookConnect::getFacebook(); parent::executeSignin_form(); }