Я следую за http://benmarshall.me/facebook-sdk-php-v4-codeigniter/
Руководство. здесь я могу получить URL для входа в систему, но не могу получить URL для выхода из системы
может кто-нибудь сказать мне, почему я не получаю это
Вот моя функция выхода из библиотеки на Facebook
public function logout_url() {
$_session = $this->helper->getSessionFromRedirect();
$session = new FacebookSession( $_session->getToken() );
$next_url = 'http://localhost/ci_sdk/index.php/welcome/login';
return $this->helper->getLogoutUrl($session,$next_url);
}
Вот мой конструктор в библиотеке фейсбука
public function __construct() {
$this->ci =& get_instance();
$this->permissions = $this->ci->config->item('permissions', 'facebook');
FacebookSession::setDefaultApplication( $this->ci->config->item('api_id', 'facebook'), $this->ci->config->item('app_secret', 'facebook') );
$this->helper = new FacebookRedirectLoginHelper( $this->ci->config->item('redirect_url', 'facebook') );
if ( $this->ci->session->userdata('fb_token') ) {
$this->session = new FacebookSession( $this->ci->session->userdata('fb_token') );
try {
if ( ! $this->session->validate() ) {
$this->session = null;
}
} catch ( Exception $e ) {
// Catch any exceptions
$this->session = null;
}
} else {
try {
$this->session = $this->helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
} catch( Exception $ex ) {
}
}
if ( $this->session ) {
$this->ci->session->set_userdata( 'fb_token', $this->session->getToken() );
$this->session = new FacebookSession( $this->session->getToken() );
$this->logoutURL = $this->helper->getLogoutUrl( $this->session, 'http://localhost/ci_sdk/index.php/welcome/login' );
}
}
Вот моя функция контроллера
public function logout()
{
$this->load->library('facebook');
$logout_url = $this->facebook->logout_url();
echo '<a href="' . $logout_url . '">logout</a>';
}
Это дает мне эту ошибку
Fatal error: Call to a member function getToken() on null in E:\xammp\htdocs\ci_sdk\application\libraries\facebook\facebook.php
Я новичок в CodeIgniter, поэтому любезно помогите мне.
заранее спасибо
Задача ещё не решена.
Других решений пока нет …