2013-05-06 99 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