Estoy intentando crear un sistema por el cual permita a cualquier persona que esté registrada en facebook loguearse sin necesidad de pasar por el proceso de registro de mi aplicación.
Para ello, he planteado lo siguiente:
Un botón con html:
Código HTML:
Ver original
Cuando se realiza un click en ese botón, un evento en javascript es activado a través de JQUERY
Código Javascript:
Ver original
$("#fb_log").click(function(){ $.ajax({ url: '/es/framework/methods/ajax/login_facebook.php', type: "post", cache: false, success: function (retorno) { if (retorno==1) window.location.href= "http://www.mipagina.com/es/page/home.inc.php"; } }); });
Este evento JQUERY establece una conexión asíncrona llamando al fichero login_facebook.php que se encargará de llamar a las funciones para validar a un usuario en facebook a través de php.
Código PHP:
Ver original
require_once ($_SERVER['DOCUMENT_ROOT'].'/es/framework/classes/Builder.php'); $UIModules = Builder::getUIModules(); $UIModules->fbLogin();
Accedemos al fichero donde se encuentran todas las funciones, UIModules. Aquí está el acceso a facebook. Si el usuario ya está logueado en facebook y el cliente que conecta ya está autentificado en ese ordenador, automáticamente debería entrar, si no, debería enviarlo a la página web de facebook para que loguease.
Código PHP:
function fbLogin(){
require_once ($_SERVER['DOCUMENT_ROOT'].'/es/framework/classes/'.'facebook.php');
$facebook = new Facebook(array(
'appId' => '078128215496471',
'secret' => 'ae03ca1a51f423ab251932aa2ffaa6f4',
));
$user = $facebook->getUser();
if ($user){
try{
$user_profile = $facebook->api('/me');
}catch(FacebookApiException $e){
error_log($e);
$user = null;
}
}else{
$login_url = $facebook->getLoginUrl(array( 'scope' => 'email'));
header("Location: " . $login_url);
}
}
}
Gracias de antemano