2012-08-07 58 views
-1

我在Symfony2中使用Facebook連接,我已經成功完成了這一步,但現在我想從Facebook登錄用戶的用戶信息。我如何從facebook獲取用戶的信息?任何幫助將不勝感激!在Symfony2中使用Facebook連接

+0

閱讀文件?你有什麼嘗試? – Stony 2012-08-07 07:59:04

回答

0

我用它來記錄我的/登錄頁面上的用戶(加上被Facebook在Facebook上開發門戶網站提供的JavaScript):

public function handle(GetResponseEvent $event) 
{ 
    if (null !== $this->securityContext->getToken() || $event->getRequest()->attributes->get('_route') !== 'login') { 
     return; 
    } 

    $this->facebook = new Facebook(array(
     'appId' => $this->appId, 
     'secret' => $this->appSecret, 
    )); 

    if ($userId = $this->facebook->getUser()) { 
     $token = $this->facebookProvider->generateToken($userId); 

     if (false === $token = $this->facebookProvider->authenticate($token, false)) { 
      $userInfo = $this->facebook->api('/' + $userId); 
      $token = $this->facebookProvider->generateToken($userId); 

      /** create new user **/ 
      $user = new User(); 
      $user->setFacebookId($userId); 
      $user->setUsername($userInfo['name']); 
      $user->setLang($userInfo['locale']); 
      $user->setEmail($userInfo['email']); 

      $this->entityManager->persist($user); 
      $this->entityManager->flush(); 

      $token->setUser($user); 
     } 

     $this->securityContext->setToken($token); 
    } 
}