Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //require_once 'init.php';
- require_once '../usersc/init.php';
- $db=DB::getInstance();
- $settingsQ=$db->query("SELECT * FROM settings");
- $settings=$settingsQ->first();
- if(!isset($_SESSION)){session_start();}
- $appID=$settings->fbid;
- $secret=$settings->fbsecret;
- $version=$settings->graph_ver;
- $whereNext=$settings->finalredir;
- //require_once("/src/Facebook/autoload.php");
- require_once $abs_us_root.$us_url_root.'users/src/Facebook/autoload.php';
- $fb = new Facebook\Facebook([
- 'app_id' => $appID, // Replace {app-id} with your app id
- 'app_secret' => $secret,
- 'default_graph_version' => $version,
- ]);
- $helper = $fb->getRedirectLoginHelper();
- try {
- $accessToken = $helper->getAccessToken();
- } catch(Facebook\Exceptions\FacebookResponseException $e) {
- // When Graph returns an error
- echo 'Graph returned an error: ' . $e->getMessage();
- exit;
- } catch(Facebook\Exceptions\FacebookSDKException $e) {
- // When validation fails or other local issues
- echo 'Facebook SDK returned an error: ' . $e->getMessage();
- exit;
- }
- if (! isset($accessToken)) {
- if ($helper->getError()) {
- header('HTTP/1.0 401 Unauthorized');
- echo "Error: " . $helper->getError() . "\n";
- echo "Error Code: " . $helper->getErrorCode() . "\n";
- echo "Error Reason: " . $helper->getErrorReason() . "\n";
- echo "Error Description: " . $helper->getErrorDescription() . "\n";
- } else {
- header('HTTP/1.0 400 Bad Request');
- echo 'Bad request';
- }
- exit;
- }
- // Logged in
- //echo '<h3>Access Token</h3>';
- //var_dump($accessToken->getValue());
- // The OAuth 2.0 client handler helps us manage access tokens
- $oAuth2Client = $fb->getOAuth2Client();
- // Get the access token metadata from /debug_token
- $tokenMetadata = $oAuth2Client->debugToken($accessToken);
- //echo '<h3>Metadata</h3>';
- //var_dump($tokenMetadata);
- // Validation (these will throw FacebookSDKException's when they fail)
- $tokenMetadata->validateAppId($appID); // Replace {app-id} with your app id
- // If you know the user ID this access token belongs to, you can validate it here
- //$tokenMetadata->validateUserId('123');
- $tokenMetadata->validateExpiration();
- if (! $accessToken->isLongLived()) {
- // Exchanges a short-lived access token for a long-lived one
- try {
- $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
- } catch (Facebook\Exceptions\FacebookSDKException $e) {
- echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n";
- exit;
- }
- echo '<h3>Long-lived</h3>';
- var_dump($accessToken->getValue());
- }
- $_SESSION['fb_access_token'] = (string) $accessToken;
- // User is logged in with a long-lived access token.
- // You can redirect them to a members-only page.
- //header('Location: https://example.com/members.php');
- try {
- // Returns a `Facebook\FacebookResponse` object
- $response = $fb->get('/me?fields=id,name,email', $_SESSION['fb_access_token']);
- } catch(Facebook\Exceptions\FacebookResponseException $e) {
- echo 'Graph returned an error: ' . $e->getMessage();
- exit;
- } catch(Facebook\Exceptions\FacebookSDKException $e) {
- echo 'Facebook SDK returned an error: ' . $e->getMessage();
- exit;
- }
- $fbuser = $response->getGraphUser();
- //In case you want to test what you get back from FriendFace
- // var_dump($user);
- // echo 'Name: ' . $fbuser['name'];
- // echo '<br>email: ' . $fbuser['email'];
- // echo '<br>id: ' . $fbuser['id'];
- //Facebook Authenticated - Let's do something with that info
- //Check to see if the user has an account
- $fbEmail = $fbuser['email'];
- $checkExistingQ = $db->query("SELECT * FROM users WHERE email = ?",array ($fbEmail));
- $CEQCount = $checkExistingQ->count();
- //Existing UserSpice User Found
- if ($CEQCount>0){
- $checkExisting = $checkExistingQ->first();
- $newLoginCount = $checkExisting->logins+1;
- $newLastLogin = date("Y-m-d H:i:s");
- $fields=array('fb_uid'=>$fbuser['id'], 'logins'=>$newLoginCount, 'last_login'=>$newLastLogin);
- $db->update('users',$checkExisting->id,$fields);
- $_SESSION["user"] = $checkExisting->id;
- Redirect::to('account.php');
- }else{
- // //No Existing UserSpice User Found
- // if ($CEQCount<0){
- $fbpassword = password_hash(Token::generate(),PASSWORD_BCRYPT,array('cost' => 12));
- $date = date("Y-m-d H:i:s");
- $fbname = $fbuser['name'];
- $fields=array('email'=>$fbEmail,'username'=>$fbEmail,'fname'=>$fbname,'lname'=>'','permissions'=>1,'logins'=>1,'company'=>'none','join_date'=>$date,'last_login'=>$date,'email_verified'=>1,'password'=>$fbpassword,'fb_uid'=>$fbuser['id']);
- $db->insert('users',$fields);
- $lastID = $db->lastId();
- $insert2 = $db->query("INSERT INTO user_permission_matches SET user_id = $lastID, permission_id = 1");
- $insert3 = $db->query("INSERT INTO profiles SET user_id = $lastID, bio = 'This is your bio'");
- $_SESSION["user"] = $lastID;
- Redirect::to($whereNext);
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement