Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Login con facebook en php sdk v3.2.3

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
1703
Visitas
4
Resp
Por alber hace 32 meses
Administrador

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 31 meses
Principiante

Respuesta #2

Hola Fernando, en localhost no funciona!! es necesario hacer el proceso desde un servidor remoto!

Saludos..
0
Puntos
Por alber hace 31 meses
Administrador

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 31 meses
Principiante

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 31 meses
Administrador

Relaccionados

Para comentar Inicia sesión o Registrate