cómo extraer información del usuario del SDK de Facebook a la base de datos de mi sitio usando php

StackOverflow https://stackoverflow.com//questions/25011369

Pregunta

He habilitado el inicio de sesión de Facebook en mi sitio usando el SDK de script java de Facebook.Ahora quiero extraer la información básica del usuario de Facebook y almacenarla en la base de datos MySQL de mi sitio.Necesito que esto se haga a través de php ya que la página de registro alternativa está implementada en php.Si es posible alguna otra forma mejor, menciónela.

editar:Sigo que necesito usar el objeto de respuesta, pero ¿dónde se supone que debo colocar la solicitud del objeto?y códigos de "publicación" de php?Soy relativamente nuevo en PHP, ¿a dónde pertenecen las siguientes líneas de código?

 FB.api('/me', function(response) {
console.log(JSON.stringify(response));

});

Devolverá una serie de valores:

{ "id":"101540562372987329832845483", "email":"example@example.com", "first_name":"Bob", [ ...] }

edición 2:

FB.api llama a la API y recibe el objeto de respuesta, que contiene la información del usuario, pero ¿tengo que usar el "código1" exacto a continuación o puedo usarlo de otra manera como en el "código2" con el que estoy familiarizado?

código1:

FB.login(function(response) {
 if (response.authResponse) {
 console.log('Welcome!  Fetching your information.... ');
 FB.api('/me', function(response) { 
  var fbname=response.name;
  var fbid=response.id;
 $.ajax({
 type: "POST",
 url: page_for_storing_information,
 data: "name="+fbname+"&uid="+fbid,
     success: function(msg){ 
      }
     });
 console.log('Good to see you, ' + response.name + '.');
  });
   } else {
   console.log('User cancelled login or did not fully authorize.');
   }
});

código 2:

$name = mysqli_real_escape_string($con, $_POST['response.name']);
$email = mysqli_real_escape_string($con, $_POST['response.email']);
$id = mysqli_real_escape_string($con, $_POST['response.id']);


$sql="INSERT INTO questbook (name, email, id)
VALUES ('$name', '$email', '$comment', )";

if (!mysqli_query($con,$sql)) {
   die('Error: ' . mysqli_error($con));
 } 
¿Fue útil?

Solución

Facebook recomienda usar el nuevo PHP SDK 4 para la API. Necesita PHP 5.4+, asegúrese de que lo consiguió en su servidor. Aquí hay algunos enlaces para comenzar, los documentos de Facebook no se detallan sobre el nuevo PHP SDK (todavía):

Lo que puede querer utilizar es el "Ayudante de inicio de sesión de JavaScript".

Editar: Me doy cuenta de que ni siquiera necesita usar el SDK PHP para esto, ya que incluso solicita los datos básicos a través de JavaScript. Por lo tanto, todo lo que necesita hacer es usar AJAX para llamar a su archivo PHP con el código de almacenamiento de la base de datos.

Ejemplo de Código AJAX:

var ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function() {
    if(ajaxRequest.readyState === 4) {
        console.log(ajaxRequest.responseText);
    }
};
//send with POST
ajaxRequest.open('POST','yourscript.php',true);
ajaxRequest.setRequestHeader('Content-type','application/x-www-form-urlencoded'); //like a form
ajaxRequest.send('name=xxxx&fbid=xxxxx');

No estoy seguro de si sabe cómo usar MySQL, pero debe buscar Google para "PDO", la forma recomendada de usar MySQL con PHP: http://php.net/manual/en/book.pdo.php

Otros consejos

pasar por esto - https://developers.facebook.com/docs/reference/php/4.0.0todo se describe aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top