2012-12-07 3 views
0

Я использую логин facebook в своем приложении codeigniter. Я установил контроллер для обработки логина и, похоже, он работает во всех случаях пользовательского состояния, за исключением случаев, когда пользователь регистрируется в facebook и пытается войти в мое приложение, но никогда не аутентифицировал его.Как аутентифицировать уже зарегистрированный пользователь facebook с facebook api

Вот мой facebook индексная функция контроллера:

$data=array(
      'redirect_uri' => site_url('facebookcontroller/handle_facebook_login'), 
      'scope' => 'publish_stream,email' 
     ); 
     redirect($this->fbconnect->getLoginUrl($data)); 

ли -> getLoginUrl() направить только на страницу входа в facebook, но не страницу аутентификации?

Я признателен за любую помощь

ответ

1

Кажется, вы используете старую версию facebook SDK. Я рекомендую посмотреть here, так как некоторые из этих функций больше не работают. затем принять во внимание, что, когда кто-то вошел в Facebook и вы просите за информацию профиля, как это:

$data['user_profile'] = $profile = $this->facebook->api('/me'); 

Это может быть с помощью отказа от маркеров доступа даты, так что вы должны заключить, что вызов в блок try-catch, например:

try { 
     $data['user_profile'] = $profile = $this->facebook->api('/me'); 
    }catch (Exception $e){ 
    $this->facebook->setAccessToken($this->facebook->getAccessToken()); 
    try { 

     if($this->facebook->getUser()) { 
     $this->facebook->api(array('method' =>'auth.revokeAuthorization')); 
     } 

    }catch(Exception $e) { 

     redirect('<login controller>'); 
    } 
    redirect('<login controller>'); 
    } 
+0

Спасибо за отзыв, я попробую и посмотрю, что я получу, теперь у меня есть новая проблема. Он работает нормально, но когда я переключаю режим работы php на fastcgi, он перестает работать снова, и это дает мне ошибку 500 без каких-либо подробностей. – Pacemaker

+1

вам очень приятно :) в этом случае вы можете проверить здесь http: // serverfault. com/questions/381872/why-would-i-get-a-500-internal-server-error-iis7-fastcgimodule-with-php, которые могут быть проблемой разрешений – carlosavoy

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