2013-07-18 2 views
0

У меня есть система аутентификации для входа в Facebook в Laravel, которая отлично работает, когда пользователь со всеми свойствами регистрируется, но когда пользователь не имеет одного свойств заполняемых, он выдает ошибку (например):Как проверить, существует ли свойство (FB auth) с Laravel Oauth2

Не определено свойство: StdClass :: $ био

Вот соответствующий код:

Facebook.php:

public function get_user_info(Token_Access $token) 
    { 
     $url = 'https://graph.facebook.com/me?'.http_build_query(array(
      'access_token' => $token->access_token, 
     )); 

     $user = json_decode(file_get_contents($url)); 

     // Create a response from the request 
     return array(
      'uid' => $user->id, 
      'nickname' => $user->username, 
      'name' => $user->name, 
      'first_name' => $user->first_name, 
      'last_name' => $user->last_name, 
      'gender' => $user->gender, 
      'email' => $user->email, 
      'birthday' => $user->birthday, 
      'location' => $user->location->name, 
      'description' => $user->bio, //the line giving trouble for a user 
      'friends' => 'https://graph.facebook.com/me/friends?fields=id&access_token='.$token->access_token, 
      'image' => 'https://graph.facebook.com/me/picture?width=200&height=200&access_token='.$token->access_token, 
      'urls' => array(
      'Facebook' => $user->link, 
      ), 
     ); 
    } 

Oauth2Controller.php:

if(is_null($check)) { 

        $fan = new Fan; 

        $fan->fbid = $user['uid']; 
        $fan->email = $user['email']; 
        $fan->first_name = $user['first_name']; 
        $fan->last_name = $user['last_name']; 
        $fan->gender = $user['gender']; 
        $fan->birthday = $user['birthday']; 
        $fan->age = $age; 
        $fan->city = $city; 
        $fan->state = $state_abbrev; 
        $fan->image = $user['image']; 
        $fan->friend_ids_url = $user['friends']; 
        $fan->friend_ids_unpacked = $friend_ids; 

        $fan->save(); 

        $new = Fan::where('fbid', '=', $user['uid'])->first(); 

        Auth::login($new); 
        return Redirect::to('fans/home'); 

       } 

Как проверить, что у пользователя есть эти поля, входящие в своем профиле, так что я не эта ошибка бросит? Спасибо.

ответ

2

Вы можете это сделать?

'description' => (isset($user->bio) ? $user->bio : NULL) 
Смежные вопросы