2013-05-06 84 views
2

配合,我试图访问用户的个人信息。 我正在使用Facebook-sdk Laravel Bundle。 事情是...Laravel - Facebook-sdk获取用户ID

<?php 

class App_Controller extends Base_Controller { 

    public $restful = true;  

    public function get_check() 
    { 
     // Chequeo que el FbId haya puesto Like en la pagina 
     $facebook = IoC::resolve('facebook-sdk'); 

     $accessToken = $facebook->getAccessToken(); 
     $user = $facebook->getUser(); 

     if ($user) { 
      try { 
       // Proceed knowing you have a logged in user who's authenticated. 
       $user_profile = $facebook->api('/me'); 
      } catch (FacebookApiException $e) { 
       error_log($e); 
       $user = null; 
      } 
     }else{ 
      $params = array(
       'scope' => 'read_stream, friends_likes', 
       'redirect_uri' => 'http://someurl.com' // I've removed the actual url 
      ); 
      $login_url = $facebook->getLoginUrl($params); 
      //return Response::make('', 302)->header('Location', $login_url); 
     } 

     echo $user; 
    }  

    public function get_game() 
    { 
     // Imprimo la pantalla del juego 
     return View::make('game'); 
    }  

    /*public function get_logout(){ 
     $facebook = IoC::resolve('facebook-sdk'); 
     $user = $facebook->getUser(); 

     $params = array(
      'scope' => 'read_stream, friends_likes', 
      'redirect_uri' => 'http://www.conamor.org/apps/aventuracenter/pacman/public/game/' 
     ); 
     if($user){ 
      $url = $facebook->getLogoutUrl(); 
     }else{ 
      $url = $facebook->getLoginUrl(); 
     } 

     header("Location: ".$url); 
    }*/ 

} 

所以,当我回声$用户,我只是得到0,因为它是不是一个对象值。 有什么想法?

谢谢!

回答

2

我一直在玩弄FB登录眼前这个周末得到了这个工作:

Route::get('/', function() 
{ 
    $facebook = IoC::resolve('facebook-sdk'); 

    $params = array(
     'scope' => 'email', 
     'redirect_uri' => 'http://www.yoururl.com' 
    ); 

    $loginUrl = $facebook->getLoginUrl($params); 

    $uid = $facebook->getUser(); 

    if($uid) 
    { 
     $user_profile = $facebook->api('/me'); 
     var_dump($user_profile); 
    }else{ 
     return View::make('home.index') ->with('facebook_login', $loginUrl); 
    }        
}); 

在我看来,我使用{{HTML ::链接($ facebook_login, '登录')}}为登录。 你应该可以在我的代码中添加错误例外,我没有打扰,因为它只是用于测试;)

注销我使用这个,因为getLogoutUrl没有工作日志对我来说:

Route::get('logout', function() 
{ 
    $facebook = IoC::resolve('facebook-sdk'); 
    $facebook->destroySession(); 
    return Redirect::to('/'); 
}); 
+0

但是我怎样才能得到用户的姓名? – Pablo 2013-05-06 22:09:49

+1

使用此代替var_dump:'echo $ user_profile ['first_name']。 “”。 $ user_profile ['last_name'];'用var_dump你可以看到所有你可以使用的键。 – Thomas 2013-05-06 22:17:22

+0

@Thomas你可以发布IoC容器代码吗? – Alias 2014-05-23 08:54:50