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
Im getting this error “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.”
i m getng error pls help me
Given URL is not permitted by the Application configuration: One or more of the given URLs is not permitted by the App’s settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App’s domains.
thanks buddy. nice posting. very easy to understand.
Thanks for your post, its very descriptive. I’m getting Internal server error when I click on login with facebook button.
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in
/home/u579934992/public_html/src/Facebook/FacebookRedirectLoginHelper.php
on line 181 please solve this error
THANK YOU! I tried for hours, but kept getting an error from Facebook. Your download made it work for me! I’ve subscribed to your newsletter, liked you on Facebook and clicked on all of your ads (including one for asian women).
Thanks!!
Fatal error: Call to undefined function FacebookHttpClientsmb_substr() in /home/plazgem9/public_html/src/Facebook/HttpClients/FacebookCurlHttpClient.php on line 254
What it is mean ?
Please Help me!
good job ,,,, thanks bro ,,, your code fix my problem
How to fix this error ?
Fatal error: Call to undefined function FacebookHttpClientsmb_substr() in /home/plazgem9/public_html/facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/HttpClients/FacebookCurlHttpClient.php on line 266
You must compile apache with mbstring enabled. Your web host should be able to do this for you.
I just change the app ID, secure number and url and get this error:
Fatal error: Call to undefined function setDefaultApplication() ,can you help please?
fbconfig.php not working (white screen) can you help?
here is the email fix,
$request = new FacebookRequest( $session, ‘GET’, ‘/me?locale=en_US&fields=id,name,email’ );
awesome!!!!!!!!!!!
Amazing. Works perfectly
you are awesome!!!!
Thanks so much man. I’d buy you a beer if you were local for this help. Took a bit because it appeared to be failing, but after clearing my cache and other changes made, it worked as you said.
Thank so much bro. I also have trouble with this problem :)))))
thanks, work perfect!, God bless you
bhava working thanks
Thank you Perfect Working!
Really thanks! May be it will useful : $request = new FacebookRequest( $session, ‘GET’, ‘/me?locale=en_US&fields=id,name,email,gender, etc..’ );
Thank you guy. With some adjusts it worked fine here. 🙂
Thankx a lot ! its working very fine and it were so easy with help of your tutorial and code 🙂
Email and Name showing !!!
ffbconfig.php
// see if we have a session
if ( isset( $session ) ) {
// graph api request for user data
$request = new FacebookRequest( $session, ‘GET’, ‘/me?locale=en_US&fields=name,email’ );
$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;
/* —- header location after session —-*/
require ‘functions.php’;
checkuser($fbid,$fbfullname,$femail);
header(“Location: index.php”);
} else {
$loginUrl = $helper->getLoginUrl(array(‘req_perms’ => ’email’));
require ‘functions.php’;
header(“Location: “.$loginUrl);
}
end of fbconfig.php
Saving Data Solved ….. edit functions.php
CAN ANYBODY PROVIDE THE LATEST CODDING FOR GET BELOW DETAILS?
Facebook user’s details (id, username, first_name, last_name, gender, e-m-a-i-l)
THANKS IN ADVANCE 🙂
i have used your code , all information got but still email id not , plz tell me
maybe you email is private? not a public
plz reply to me for email id not getting from this code
it’s giving some error. why
1st error: Undefined index: FBID in C:wampwww1353index.php on line 11
have you figured this one out?
overall it’s working except this error. thank you
session_start(); if that code have it doesn’t work. why?
how to get group data?
i add
$request2 = new FacebookRequest( $session, ‘GET’, ‘/229202813870139’);
but that showing null
Hey there…
I think that your script works very well.. I only have 1 question.. Is it possible to redirect mobile browser user to authenticate via facebook app instead of thru facebook.com ? NativeView instead of WebView login? My website audience is mainly accessing it through mobile browser and they are not logged in thru facebook.com but the app..
Good afternoon, I have a problem with the code. It works everything but the party would have to save the data in the database, which could not be performed because everything stated in the tutorial without any problem and does not indicate any kind of error.
I would ask the code to save the information in the database, if anyone has or know if this can not be done. I have searched many tutorials and is the only one that worked me, I only need to save the data.
I hope you can help me. Greetings and thanks in advance
Hey …it is displaying the entire code of index.php on my webpage …..plz help me out!
🙁
ffffff