Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2014, 08:52
starlightphp
Invitado
 
Mensajes: n/a
Puntos:
Problema con el login a través de facebook y php

Buenas tardes.

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
  1. <a id="fb_log" href="#">
  2.      <img alt="fb_login" src="./framework/images/fb_login.png"/>
  3. </a>

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
  1. $("#fb_log").click(function(){
  2.      $.ajax({
  3.           url: '/es/framework/methods/ajax/login_facebook.php',
  4.           type: "post",
  5.           cache: false,
  6.           success: function (retorno) {
  7.            if (retorno==1)
  8.                 window.location.href= "http://www.mipagina.com/es/page/home.inc.php";
  9.       }
  10.      });
  11. });

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
  1. require_once ($_SERVER['DOCUMENT_ROOT'].'/es/framework/classes/Builder.php');
  2. $UIModules = Builder::getUIModules();
  3. $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);
        }
    }

Por alguna extraña razón, esto no funciona. Alguien me puede ayudar / decir que estoy haciendo mal? Me sería de gran ayuda. Soy estudiante de programación y pese a que he leido bastante en la api de facebook y multitud de foros, y en todos ellos utilizan el modo javascript, tengo cierto interés en saber como sería en php.

Gracias de antemano