Esto en una pequeña guía de como usar el login con facebook en php con la versión sdk v3.2.3, desde mi punto de vista la mas amigable para manipular, en este ejemplo vamos a obtener el email, nombre, apellidos, id y sexo.

Lo primero es descargar el sdk de la pagina oficial de facebook developers, para que todo esto sea posible hay que crear una aplicación en facebook, puedes ver una pequeña guía desde este enlace

En el ejemplo una de las primeras lineas que vemos es la inclusión del fichero facebook.php que ejecuta el sdk:
<?php

//Incluir el sdk de facebook
require 'src/facebook.php';

//Crear una instacia con los numero secretos
$facebook = new Facebook(array(
  'appId'  => '344617158898614',
  'secret' => '6dc8ac871858b34798bc2488200e503d',
));

// Obtener la id de usuario
$user = $facebook->getUser();


if ($user) {
  try {
   //Obtener los datos del usuario
$user_profile = $facebook->api('/me?fields=id,name,email,first_name,last_name,gender');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

//Parámetros adicionales
$params = array(
    'scope' => 'email',
    'redirect_uri' => 'http://dominio.php/redirect.php',
);

//Inicio y cierre de sesión
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl($params);
}

?>
<?php if ($user){ ?>
  <a href="<?php echo $logoutUrl; ?>">Salir</a>


  <pre>
    <?php var_dump($user_profile); ?>
  </pre>
<?php } else { ?>
 <a href="<?php echo $loginUrl; ?>">Iniciar con facebook</a>
<?php } ?>
Recordar que en localhost no funciona!! es necesario hacer el proceso desde un servidor remoto!

Salu2
Editado
4
Puntos
2934
Visitas
4
Resp
Por alber hace 10 años
Admin
Respuesta #1
Me sale Fatal error: Class 'Facebook' not found in C:\xampp\htdocs\fechas\formlogin.php on line 33
0
Puntos
Por fernando hace 10 años
Novice
Respuesta #2
Hola Fernando, en localhost no funciona!! es necesario hacer el proceso desde un servidor remoto!

Saludos..
0
Puntos
Por alber hace 10 años
Admin
Respuesta #3
Estos datos de la sesión se almacenan en la base de datos de mi web?
O como se hace para almacenar en mi base de datos?
0
Puntos
Por bsl123 hace 10 años
Novice
Respuesta #4
Para almacenar los datos en tu base de datos solo tienes que ir insertando los valores, por ejemplo si quieres guardar el nombre y el email:
$nombre=$user_profile['name'];
$correo=$user_profile['email'];

//INSERTAR REGISTRO
$accion = "INSERT INTO users (nombre,email) VALUES ($nombre,$correo)";
$consulta = mysqli_query($conexion,$accion) or die(mysqli_error());
0
Puntos
Por alber hace 10 años
Admin
Para comentar Inicia sesión o Regístrate
Phpres 2025@ All rights reserved.
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar