В yii facebook opengraph возвращает uid, когда пользователь выходит из facebook на другой вкладке браузера.

Я работаю в yii 1.1 и имею расширение yii-facebook-opengraph для php sdk 3.1.1.

    $facebook_id = Yii::app()->facebook->getUser();
    if ($facebook_id) 
      { 
       // check that you get a Facebook ID before calling api()
       // now we know we have a Facebook Session,
       $user_info = Yii::app()->facebook->api('/me'); // so it's safe to call api()
       if ($user_info) 
       {
          // ...  code ...
       }
      }

проблема в том, что когда пользователь входит в систему через facebook на одной вкладке и выходит из facebook на другой вкладке, тогда $facebook_id все еще установлен. Почему? и при попытке получить доступ к информации о пользователе получил ошибку «Требуется сеанс пользователя». я много искал и нашел что-то вроде

$facebook->getSession();

получить сеанс пользователя, но эта функция недоступна в yii-facebook-opengraph. Пожалуйста, предложите мне любое решение.


person hemc4    schedule 22.11.2012    source источник


Ответы (1)


Пытаться:

if ($facebook_id) {
    try
    {
        $user_info = $fb->api('/me');
    }
    catch(FacebookApiException $e){
        $fb->destroySession();
    }
}

Где $fb – это экземпляр вашего $fb = new Facebook();

person Brett Gregson    schedule 22.11.2012