php - Facebook SDK Error: Cross-site request forgery validation failed. The "state" param from the URL and session do not match -


i having problem facebook sdk, getting same error:

error:

facebook sdk returned error: cross-site request forgery validation failed. "state" param url , session not match.

php script:

<?php if(!session_id()) {     session_start(); }require_once __dir__ . '/facebook/autoload.php';  $fb = new facebook\facebook([     'app_id' => 'xxxxxxxxxxxxxxxx',     'app_secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx',     'default_graph_version' => 'v2.5', ]);  $helper = $fb->getredirectloginhelper();  $permissions = ['email']; // optional  try {     if (isset($_session['facebook_access_token'])) {         $accesstoken = $_session['facebook_access_token'];     } else {         $accesstoken = $helper->getaccesstoken();     } } catch(facebook\exceptions\facebookresponseexception $e) {     // when graph returns error     echo 'graph returned error: ' . $e->getmessage();      exit; } catch(facebook\exceptions\facebooksdkexception $e) {     // when validation fails or other local issues     echo 'facebook sdk returned error: ' . $e->getmessage();     exit; }  if (isset($accesstoken)) {     if (isset($_session['facebook_access_token'])) {         $fb->setdefaultaccesstoken($_session['facebook_access_token']);     } else {         // getting short-lived access token         $_session['facebook_access_token'] = (string) $accesstoken;          // oauth 2.0 client handler         $oauth2client = $fb->getoauth2client();          // exchanges short-lived access token long-lived 1         $longlivedaccesstoken = $oauth2client->getlonglivedaccesstoken($_session['facebook_access_token']);          $_session['facebook_access_token'] = (string) $longlivedaccesstoken;          // setting default access token used in script         $fb->setdefaultaccesstoken($_session['facebook_access_token']);     }      // redirect user same page if has "code" variable     if (isset($_get['code'])) {         header('location: ./');     }      // getting basic info user     try {         $profile_request = $fb->get('/me?fields=name,first_name,last_name,email');         $profile = $profile_request->getgraphnode()->asarray();     } catch(facebook\exceptions\facebookresponseexception $e) {         // when graph returns error         echo 'graph returned error: ' . $e->getmessage();         session_destroy();         // redirecting user app login page         header("location: ./");         exit;     } catch(facebook\exceptions\facebooksdkexception $e) {         // when validation fails or other local issues         echo 'facebook sdk returned error: ' . $e->getmessage();         exit;     }      // printing $profile array on screen holds basic info user     print_r($profile);      // can redirect page , use access token $_session['facebook_access_token'] } else {     // replace website url same added in developers.facebook.com/apps e.g. if used http instead of https , used non-www version or www version of website must add same here     $loginurl = $helper->getloginurl('http://localhost/myquizlife/', $permissions);     echo '<a href="' . $loginurl . '">log in facebook!</a>'; } 


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -