getLogoutUrl is not working with facebook graphp api using php codeigniter -


my facebook php sdk getlogouturl not working when click on logout url. takes me given redirect url not destroy facebook session can still see var_dump($fb_data) array on page , logout url.

here code using codeigniter lib_login library function facebook code

 public function facebook()     {         $facebook_default_scope = explode(',', $this->ci->config->item("facebook_default_scope"));         $facebook_app_id = $this->ci->config->item("facebook_app_id");         $facebook_api_secret = $this->ci->config->item("facebook_api_secret");          // init app app id , secret         facebooksession::setdefaultapplication($facebook_app_id, $facebook_api_secret);          // login helper redirect_uri         $helper = new facebookredirectloginhelper(site_url('login/facebook'));         // see if existing session exists         if (isset($_session) && isset($_session['fb_token'])) {             // create new session saved access_token             $session = new facebooksession($_session['fb_token']);              // validate access_token make sure it's still valid             try {                 if (!$session->validate()) {                     $session = null;                 }             } catch (exception $e) {                 // catch exceptions                 $session = null;             }         }          if (!isset($session) || $session === null) {             // no session exists              try {                 $session = $helper->getsessionfromredirect();             } catch(facebookrequestexception $ex) {                 // when facebook returns error                 // handle better in production code                 print_r($ex);             } catch(exception $ex) {                 // when validation fails or other local issues                 // handle better in production code                 print_r($ex);             }         }          // see if have session         if (isset($session)) {             // save session             $_session['fb_token'] = $session->gettoken();             // create session using saved token or new 1 generated @ login             $session = new facebooksession($session->gettoken());              // graph api request user data             $request = new facebookrequest($session, 'get', '/me?fields=id,name,accounts{access_token,category,name,id,perms},permissions');             $response = $request->execute();             // response             $graphobject = $response->getgraphobject()->asarray();             $logouturl = site_url('login');             $fb_data = array(                 'me' => $graphobject,                 'loginurl' => $helper->getloginurl($facebook_default_scope),                 'logouturl' => $helper->getlogouturl($session,$logouturl),            );             $this->ci->session->set_userdata('fb_data', $fb_data);          } else {             $fb_data = array(                 'me' => null,                 'loginurl' => $helper->getloginurl($facebook_default_scope),                 'logouturl' => $helper->getlogouturl($session,$logouturl),            );             $this->ci->session->set_userdata('fb_data', $fb_data);         }          return $fb_data;     } 

here function of controller

 public function facebook()     {         $fb_data = $this->lib_login->facebook();           if (isset($fb_data['me'])) {             echo "<pre>";              var_dump($fb_data);             echo "</pre>";             echo '<a href="' . $fb_data['logouturl'] . '">logout</a>';         } else {             echo '<a href="' . $fb_data['loginurl'] . '">login</a>';         }     } 

when ever login account using code logout url , $fb_data array appears on page when logout , refresh page still their.can 1 tell doing wrong here.

try this:

<?php if ( ! defined('basepath')) exit('no direct script access allowed'); class login extends ci_controller {     public function __construct()     {         parent::__construct();         $this->load->library(array('session', 'lib_login'));         $this->fb_data = $this->lib_login->facebook();     }     /**      * facebook login      *      * @return void      * @author appleboy      **/     public function facebook()     {         // check login data         if (isset($this->fb_data['me'])) {             var_dump($this->fb_data);         } else {             echo '<a href="' . $this->fb_data['loginurl'] . '">login</a>';         }     }      public function logout()     {         if ( isset($this->fb_data['me']) ) {             $this->session->unset_userdata('fb_data');         }         redirect('login/facebook', 'refresh');     }  } /* end of file login.php */ /* location: ./application/controllers/login.php */ 

Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -