2012-08-07 61 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); 
    } 
}