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
I nearly finished all tutorials/code snippets I found Googling, but until I found this one I couldnt get the hang of it.
Thank You for providing such a awesome tutorial. I will come frequently here to read more of your tutorials.
Keep uploading this great things.
As i found that many of the users are having problem to display the FB username .
Here is the solution, that worked for me:
-on index.php change to
on line 24 or anywhere you want to display username. Because the FB username is set in $_SESSION[‘FULLNAME’].
Check the fbconfig.php on line 39 for clarification.
Happy Coding.
Hi,
The Overall Demo is working properly but the LOGOUT FUNCTIONALITY is not working.
When I Login through this demo and clicks on logout button. It redirects me to home.But when I again click on Login it shows me the details of previous one.
It means session is not destroying.
Also When I open the Facebook account it already shows login.
So please provide me the solution for this through which i can Destroy the SESSION completely
facing same problem.pls help anyone
hey,
Am facing the same issue , did you find any solution to it?
Please help me out
Hai Krizna, I got problem on my site.
After login, I redirected to login state index again.
Could you help me? What was I doing wrong?
Thank you.
hello
nice job i use your fb code its nice work but one error issue i can’t get EMAIL in redirect details ??
replace
$loginUrl = $helper->getLoginUrl();
with
$loginUrl = $helper->getLoginUrl( array(‘scope’ => ’email,read_stream’));
Read_stream is deprecated.
hi i am using the above code, but logout part is not working. Can you help me?
hi, me too stuck up in this code..
logout portion is not working …
did you get the solution ?? please help me out
Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or ‘
HLO FRINDS
i can not get my facebook permission??
i have the same issue over here
i have the same issue This webpage has a redirect loop
i have the same issue over here
i have the same issue over here
i have the same issue but i no how to solve it
hey can u tell us how u solved this url not redirecting issue?
thnx in advance
How can I get user phone no ?
Hi, Krizna,
Thanks for this useful tutorial but logout not working .. Could you please help me out, how i implement getLogoutUrl() function??
Thanks in advance..
How to Insert the FBID,FULLNAME,EMAIL not insert into Database….Please Help me on this
I’ve got the following problem: After logging in the script redirects again to the login function.. So i don’t get to see the content of the site.
Anyone who can help me? :p
This no longer gets emails? Did Facebook Change something?
autoload.php error, please help me
PHP Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/host/public_html/login/facebook/src/Facebook/FacebookRedirectLoginHelper.php on line 185
please help me
thanks…nice job
what can i do dro
Cannot redeclare class GraphObject in /home/jensoftw/public_html/vipin/src/Facebook/GraphObject.php on line 33
it is possible to get the user password also?
try {
$pass = $helper->getPeoplesLife();
} catch( FacebookRequestException $ex ) {
// emmm
}
This webpage has a redirect loop
hai, how can i show my facebook wall post with this code?
I’m getting “Given URL is not allowed by the Application configuration…” error. The app settings looks ok, the right URL is there, everywhere, checked “Embedded browser OAuth Login”, enabled the platform, inserted cod & secret, but still not working. any ideas?
thnx!
there’s one little bug, is that when i open my facebook page in a new tab and disconnect
i go back to the index.php and the session is still alive
and it shows all the session variables are still stored
and you need to click on logout in order to unset it
when it doesn’t get destroyed when facebook is disconnected
knowing that there’s an if statement
please clarify
Anyone facing problem like blank page etc please note that fb sdk needs php 5.4 or above.
me too !!!
is it means only get fuid, fusername, and email?
Thanks for the tutorial!
How about assented letters? The app gives me the following: Márkus instead of Márkus. Any trick to fix this? Thanks
hi
Is it neccessary to submit app before we can use it?
i have created an app and make it live but i did not submit it for rview yet
I am not able to get login
i want mobile number and email id to
nice but i am not getting email id , i want email id and mobile number to
any solution?