PHP - Iniciar sesión en Facebook
Podemos utilizar el inicio de sesión de Facebook para permitir que los usuarios accedan a los sitios web. Esta página le explicará cómo iniciar sesión con Facebook PHP SDK.
Iniciar sesión con Facebook
Tengo que irme https://developers.facebook.com/apps/ y haga clic en el botón Agregar un nuevo grupo para crear la ID de la aplicación.
Elegir sitio web
Dé un nombre de aplicación y haga clic en Crear nueva ID de aplicación de Facebook
Haga clic en Crear ID de aplicación
Haga clic en Omitir prueba rápida
En la etapa final, se mostrará como se muestra a continuación.
descripción general del archivo fbconfig.php
Ahora abra el archivo fbconfig.php y agregue el ID de la aplicación y la aplicación Secrete
FacebookSession::setDefaultApplication( 'your app ID','App Secrete ' );
// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper('You web address' );
Finalmente, el archivo fbconfig.php como se muestra a continuación:
<?php
session_start();
// added in v4.0.0
require_once 'autoload.php';
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\Entities\AccessToken;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\HttpClients\FacebookHttpable;
// init app with app id and secret
FacebookSession::setDefaultApplication( '496544657159182','e6d239655aeb3e496e52fabeaf1b1f93' );
// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper('http://www.tutorialspoint.com/' );
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;
/* ---- header location after session ----*/
header("Location: index.php");
}else {
$loginUrl = $helper->getLoginUrl();
header("Location: ".$loginUrl);
}
?>
Resumen de la página de inicio de sesión
La página de inicio de sesión se utiliza para iniciar sesión en FB
<?php
session_start();
session_unset();
$_SESSION['FBID'] = NULL;
$_SESSION['FULLNAME'] = NULL;
$_SESSION['EMAIL'] = NULL;
header("Location: index.php");
?>
Index.php
La página de índice es como se muestra a continuación.
<?php
session_start();
?>
<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['FBID']; ?>/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>
<li class = "nav-header">Facebook Email</li>
<li><?php echo $_SESSION['EMAIL']; ?></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>
<a href = "http://www.tutorialspoint.com"
title = "Login with facebook">More information about Tutorialspoint</a>
</div>
</div>
<?php endif ?>
</body>
</html>
Producirá el resultado. Antes de probar este ejemplo, cierre la sesión de su cuenta de Facebook en su navegador.
Cerrar sesión Facebook
El siguiente código se utiliza para cerrar la sesión de Facebook.
<?php
session_start();.
session_unset();
$_SESSION['FBID'] = NULL;
$_SESSION['FULLNAME'] = NULL;
$_SESSION['EMAIL'] = NULL;
header("Location: index.php");
?>