/**
  * Get an instance of the Facebook object for API calls
  * 
  * @return Facebook
  */
 public static function getFacebookPlatform()
 {
     if (self::$_facebookPlatform === null) {
         // using different facebook sdk
         self::$_facebookPlatform = new Facebook(array('appId' => self::getApiKey(), 'secret' => self::getAppSecret(), 'cookie' => true));
     }
     return self::$_facebookPlatform;
 }
 /**
  * Gets information about the user
  *
  * @param array $fields
  * @return array
  */
 public function getFacebookInfo()
 {
     $facebookUid = $this->getCurrentFacebookUid();
     $userInfo = null;
     if ($facebookUid) {
         try {
             $userInfo = sfFacebookGraph::getCurrentUserInfo();
         } catch (Exception $e) {
         }
     }
     return $userInfo;
 }
 /**
  * Executes the filter chain.
  *
  * @param sfFilterChain $filterChain
  */
 public function execute($filterChain)
 {
     $facebookUid = sfFacebookGraph::getCurrentUser();
     $user = $this->context->getUser();
     // check for logged in user
     if ($facebookUid && !$user->isFacebookConnected()) {
         sfFacebookGraphUserProfile::getCurrentFacebookUser($user);
     }
     // check for logged out
     if ($user->isFacebookAuthenticated() && !$user->isFacebookConnected()) {
         $user->signOut();
     }
     $filterChain->execute();
 }
 /**
  * Get Facebook logout url for user
  *
  * @return  string
  */
 public function getFacebookLogoutUrl()
 {
     return sfFacebookGraph::getFacebookPlatform()->getLogoutUrl();
 }
 /**
  * Get Facebook logout url for user
  *
  * @param   string $redirect
  *
  * @return  string
  */
 public function getFacebookLogoutUrl($redirect = '')
 {
     $params = array();
     if ($redirect) {
         $params['next'] = $redirect;
     }
     return sfFacebookGraph::getFacebookPlatform()->getLogoutUrl($params);
 }