get_config_param('socnetauth_status') ) { header("Location: ".$_SERVER['HTTP_REFERER']); exit(); } $IS_DEBUG = 0; if( !empty($_GET['first']) ) { $STATE = 'facebook_socnetauth_'.rand(); $CURRENT_URI = $_SERVER['HTTP_REFERER']; $REDIRECT_URI = 'http://'.$_SERVER['HTTP_HOST'].'/socnetauth/facebook.php'; $CLIENT_ID = $SocAuth->get_config_param('socnetauth_facebook_appid'); $url = 'https://www.facebook.com/dialog/oauth?'. 'client_id='.$CLIENT_ID. '&redirect_uri='.$REDIRECT_URI. '&scope=email,user_hometown,user_location&state='.$STATE; $SocAuth->setRecord($STATE, $CURRENT_URI); header("Location: ".$url); exit(); } if( !empty( $_GET['state'] ) && !empty( $_GET['code'] ) && $recordData = $SocAuth->getRecord( $_GET['state'] ) ) { $CODE = $_GET['code']; $CURRENT_URI = $recordData['redirect']; $REDIRECT_URI = 'http://'.$_SERVER['HTTP_HOST'].'/socnetauth/facebook.php'; $CLIENT_ID = $SocAuth->get_config_param('socnetauth_facebook_appid'); $CLIENT_SECRET = $SocAuth->get_config_param('socnetauth_facebook_appsecret'); $url = "https://graph.facebook.com/oauth/access_token?". "client_id=".$CLIENT_ID. "&redirect_uri=".$REDIRECT_URI. "&client_secret=".$CLIENT_SECRET. "&code=".$CODE; if( $IS_DEBUG ) echo $url."
"; if( extension_loaded('curl') ) { $c = curl_init($url); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($c); curl_close($c); } else { $response = file_get_contents($url); } if( $IS_DEBUG ) echo $response."
"; $data = null; parse_str($response, $data); if( !empty($data['access_token']) ) { $graph_url = "https://graph.facebook.com/me?access_token=".$data['access_token']; if( $IS_DEBUG ) echo $graph_url."
"; if( extension_loaded('curl') ) { $c = curl_init($graph_url); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); $json = curl_exec($c); curl_close($c); } else { $json = file_get_contents($graph_url); } /* id=>100000402380563 name=>Petrov Konstantin first_name=>Petrov last_name=>Konstantin link=>http://www.facebook.com/petrov.konstantin username=>petrov.konstantin email=>kin208@gmail.com timezone=>6 locale=>en_US verified=>1 updated_time=>2012-02-11T12:39:00+0000 */ if( $IS_DEBUG ) echo $json; $userdata = json_decode($json, TRUE); if( $customer = $SocAuth->facebook_check($userdata['id']) ) { session_start(); $_SESSION['customer_id'] = $customer['customer_id']; if( $IS_DEBUG ) exit('RES1|'.$REDIRECT_URI); header("Location: ".$CURRENT_URI ); } else { $precode = $SocAuth->facebook_preregistration($userdata); if( $IS_DEBUG ) exit('RES2'); header('Location: /index.php?route=socnetauth/registration&precode='.$precode.'&redirect_uri='.urlencode($CURRENT_URI) ); } } } ?>