2013-05-06 2 views
2

Помощники, я пытаюсь получить доступ к личной информации пользователя. Я использую Facebook-sdk Laravel Bundle. Дело в том, ...Laravel - Facebook-sdk получить идентификатор пользователя

<?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

Я играл с фб входа в систему только в эти выходные и получил эту работу:

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

+1

используйте это вместо var_dump: 'echo $ user_profile ['first_name']. "". $ user_profile ['last_name']; 'с var_dump вы можете увидеть все ключи, которые вы можете использовать. – Thomas

+0

@ Томас вы можете разместить код контейнера IoC? – Alias

Смежные вопросы