Login with facebook : You can use facebook login in your websites to allow users to login using their facebook account.you don’t need an extra registration and user management for your sites.you can also manage users in your facebook application page. This article explains how to integrate “Facebook login” to your websites using Facebook PHP SDK with an example and demo.
Login with facebook ( Version: 4 – Updated )
Create Facebook APP ID and APP secret .
Step 1 » Goto https://developers.facebook.com/apps/ and Click Add a New App .
» Choose Website
» Choose Name for you App and Click Create New Facebook App ID
» Choose a category for you App and click Create App ID
» Now Click Skip Quick Test
Step 2 » Under settings, Provide values for App domain ( Eg:www.krizna.com ) and Contact Email and click Add Platform.
Provide Values for Site URL and Mobile site URl ( Optional )
Step 3 » Now under Status & Review, Click the button to make you App live .
fbconfig.php file overview
Step 4 » Download the Demo package here Login with facebook .
Step 5 » Now open fbconfig.php file and enter your app ID, secret and change domain name .
// init app with app id and secret FacebookSession::setDefaultApplication( '64296382121312313','8563798aasdasdasdweqwe84' ); // login helper with redirect_uri $helper = new FacebookRedirectLoginHelper('https://www.krizna.com/fbconfig.php' );
Step 6 » Finally full code of fbconfig.php file. See the commented lines for more details
<?php session_start(); // added in v4.0.0 require_once 'autoload.php'; //require 'functions.php'; use FacebookFacebookSession; use FacebookFacebookRedirectLoginHelper; use FacebookFacebookRequest; use FacebookFacebookResponse; use FacebookFacebookSDKException; use FacebookFacebookRequestException; use FacebookFacebookAuthorizationException; use FacebookGraphObject; use FacebookEntitiesAccessToken; use FacebookHttpClientsFacebookCurlHttpClient; use FacebookHttpClientsFacebookHttpable; // init app with app id and secret FacebookSession::setDefaultApplication( '64296382121312313','8563798aasdasdasdweqwe84' ); // login helper with redirect_uri $helper = new FacebookRedirectLoginHelper('https://www.krizna.com/fbconfig.php' ); try { $session = $helper->getSessionFromRedirect(); } catch( FacebookRequestException $ex ) { // When Facebook returns an error } catch( Exception $ex ) { // When validation fails or other local issues } // see if we have a session if ( isset( $session ) ) { // graph api request for user data $request = new FacebookRequest( $session, 'GET', '/me' ); $response = $request->execute(); // get response $graphObject = $response->getGraphObject(); $fbid = $graphObject->getProperty('id'); // To Get Facebook ID $fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name $femail = $graphObject->getProperty('email'); // To Get Facebook email ID /* ---- Session Variables -----*/ $_SESSION['FBID'] = $fbid; $_SESSION['FULLNAME'] = $fbfullname; $_SESSION['EMAIL'] = $femail; //checkuser($fuid,$ffname,$femail); header("Location: index.php"); } else { $loginUrl = $helper->getLoginUrl(); header("Location: ".$loginUrl); } ?>
logout.php file overview
Logout.php file is used only to destroy facebook session and return back to your home page .
Step 7 » Enter your home page in the code to redirect after logout.
<?php session_start(); session_unset(); $_SESSION['FBID'] = NULL; $_SESSION['FULLNAME'] = NULL; $_SESSION['EMAIL'] = NULL; header("Location: index.php"); // you can enter home page here ( Eg : header("Location: " ."https://www.krizna.com/home.php"); ?>
index.php file overview
Step 8 » You can change this file as per your need . Split this file into 2 parts before login and after login.
<?php session_start(); ?> <!doctype html> <html xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <title>Login with facebook</title> --- --- --- css stuff --- --- ---- </head> <body> <?php if ($_SESSION['FBID']): ?> -- --- - - - -- - Display content After user login -- -- - --- ---- -- - <?php else: ?> -- --- - - - -- - Display content before login -- -- - --- ---- -- - <?php endif ?> </body> </html>
Finally full code of index.php file .
<?php session_start(); ?> <!doctype html> <html xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <title>Login with Facebook</title> <link href="http://www.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel="stylesheet"> </head> <body> <?php if ($_SESSION['FBID']): ?> <!-- After user login --> <div class="container"> <div class="hero-unit"> <h1>Hello <?php echo $_SESSION['USERNAME']; ?></h1> <p>Welcome to "facebook login" tutorial</p> </div> <div class="span4"> <ul class="nav nav-list"> <li class="nav-header">Image</li> <li><img src="https://graph.facebook.com/<?php echo $_SESSION['USERNAME']; ?>/picture"></li> <li class="nav-header">Facebook ID</li> <li><?php echo $_SESSION['FBID']; ?></li> <li class="nav-header">Facebook fullname</li> <li><?php echo $_SESSION['FULLNAME']; ?></li> <div><a href="logout.php">Logout</a></div> </ul></div></div> <?php else: ?> <!-- Before login --> <div class="container"> <h1>Login with Facebook</h1> Not Connected <div> <a href="fbconfig.php">Login with Facebook</a></div> </div> <?php endif ?> </body> </html>
That’s it . now facebook users can login into your websites using facebook login ID.
Store the User information
» You can store the user info locally . Create a mysql database and import below table structure .
CREATE TABLE IF NOT EXISTS `Users` ( `UID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `Fuid` varchar(100) NOT NULL, `Ffname` varchar(60) NOT NULL, `Femail` varchar(60) DEFAULT NULL, PRIMARY KEY (`UID`) );
» Open dbconfig.php file and change the DB vlaues.
<?php define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'username'); // DB username define('DB_PASSWORD', 'password'); // DB password define('DB_DATABASE', 'database'); // DB name $connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die( "Unable to connect"); $database = mysql_select_db(DB_DATABASE) or die( "Unable to select database"); ?>
» functions.php file contains a function to update the user information .
<?php require 'dbconfig.php'; function checkuser($fuid,$ffname,$femail){ $check = mysql_query("select * from Users where Fuid='$fuid'"); $check = mysql_num_rows($check); if (empty($check)) { // if new user . Insert a new record $query = "INSERT INTO Users (Fuid,Ffname,Femail) VALUES ('$fuid','$ffname','$femail')"; mysql_query($query); } else { // If Returned user . update the user record $query = "UPDATE Users SET Ffname='$ffname', Femail='$femail' where Fuid='$fuid'"; mysql_query($query); } } ?>
» Uncomment the below lines in fbconfig.php
require 'functions.php'; // Include functions
checkuser($fbid,$fbfullname,$femail); // To update local DB
That’s it .. now you can store the values locally .
Download contains all the configuration files .
Good luck
can we test this using WAMP?
it doesnt show email..plz help
you can check in demo too
Pleace create and use the test user or make the app public.
hey when i calling 1353/fbconfig.php nothing to display
can anyone reply me
not working for me
after clicking on log in
Login with Facebook
Not Connected
Login with Facebook
View Post
following coming
The page isn’t redirecting properly
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
This problem can sometimes be caused by disabling or refusing to accept cookies.
Como obtengo el email?
This saved me a whole lot of time. Thank you!
hello, I am using this script, it is nice and helpful but there is some problem i am facing.
When i am refreshing the page or going to another page of website , the session expires. I need to remain logged in . Please help.
I don’t understand why the facebook id doesn’t seem to be correct. (while the fullname is correct)
Awesome tuto ! Please how can I get the age of the user ?
Do it works for local server (xampp) ???
Hy first i would like to thank for you all for the hard work:) New in website building i need help with the » Uncomment the below lines in fbconfig.php. I do not have those two lines in fbconfig.php so do i have to put it manually to file or ?? I can login and all but it does not store it to database. Sorry for dumb question, i know it is easy so please help me out. Thank you once more.
Nice work
Need help with last thing » Uncomment the below lines in fbconfig.php.
How to do it ? Sorry for dumb question.
Thank you
why am i having this error?
Can anyone help me with this?.. thanks
Sorry, something went wrong.
We’re working on getting this fixed as soon as we can.
Go Back
Facebook © 2017 · Help
my facebook login data is not sending to database….please urgent help me
how to fix this?
after click Log with facebook ;/
ERR_TOO_MANY_REDIRECTS
fb while login it goesto login page and rest of them is fine, but its not storing the user name details in to database wat i have to do?
hello sir i can’t access user email . Can you help me?
how to get user email if the user declines to give permission to read his email
hiii i have a problem… i would insert users facebook into database but i don’t know where i must place require ‘functions.php’; and checkuser($fbid,$fbfullname,$femail);
can you help me?
thanks
Can i get phone number of user if made public…
How can i save data of users in my database?
how can i add another social network like twitter, Instagram and others
Dear All,
I have a problem with the final instruction – the mentioned lines does not exist in the fbconfig.php:
» Uncomment the below lines in fbconfig.php
require ‘functions.php’; // Include functions
checkuser($fbid,$fbfullname,$femail); // To update local DB
Where should I insert it? I want to insert the data to my db.
Do include them in fbconfig.php
just thank you
Fatal error: Cannot use object of type stdClass as array in […] src/Facebook/FacebookRedirectLoginHelper.php on line 186
Have anybody an idea why the error are there? To days all was perfect, but today the error is showen without any changes.
Replace “$response[‘access_token’]” with “$response->access_token” on line 186 and 187 in FacebookRedirectLoginHelper.php
Crazy. It works bevor, than nothing happens and with your help its fine… BIG Thank You. Have a nice week…
Thanks buddy. Updated the file 🙂
replace “$response[‘access_token’]” with “$response->access_token” on line 186 and 187
it does not work any ,more since yesterday
Issue fixed.
Since i was benefited a lot from this article hence i would to bring to the notice of the author that their is a change i suppose in the access_token alive timing of the Facebook hence a error of
Fatal error: Cannot use object of type stdClass as array in /home1/gkrizna/public_html/Domains/kdemos/1353/src/Facebook/FacebookRedirectLoginHelper.php on line 186
is displayed in your demo link also
To resolve this please this answer on StackOverflow which has helped me resolve the issue http://stackoverflow.com/a/43069488 . the answer is wondeful and solved the issue. None the less thank you for such a wonderful article
Thanks boss. Files updated ..
It is not displaying email-id, not even in demo. Please help.
Thanks bro…
one master 😀
I used to do the same
I’m getting this error:
“Fatal error: Cannot use object of type stdClass as array in C:xampphtdocsloginfacebook1353srcFacebookFacebookRedirectLoginHelper.php on line 186”
Please help…
Download new copy and try again. I think author updated fixed it.
Even after downloading a new copy, I’m getting the same error.
Thanks, now it’s working fine. 🙂
test