Come tirare le informazioni dell'utente da Facebook SDK nel database del mio sito utilizzando PHP

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

Domanda

Ho abilitato il login di Facebook nel mio sito utilizzando lo script Java SDK di Facebook. Ora voglio tirare le informazioni di base dell'utente da Facebook e memorizzalo nel database MySQL del mio sito. Ho bisogno che questo da fare tramite PHP in quanto la pagina di iscrizione alternativa è implementata in PHP. Se è possibile qualsiasi altro modo migliore, per favore menzionare.

Modifica: Seguono che ho bisogno di usare l'oggetto di risposta, ma dove dovrei posizionare la richiesta dell'oggetto? e i codici PHP "post"? Sono relativamente nuovo a PHP, dove appartengono le linee seguenti del codice?

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

});

restituirà una serie di valori:

{ "ID": "101540562372987329832845483", "Email": "example@example.com", "First_name": "Bob", [...] }

Modifica 2:

fb.api effettua la chiamata API e riceve l'oggetto di risposta, contenente le informazioni dell'utente, ma devo usare il "codice1" esatto di seguito o posso utilizzare l'altro modo come in "Code2" che ho familiarità con ?

Codice1:

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.');
   }
});
.

Codice 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));
 } 
.

È stato utile?

Soluzione

Facebook consiglia di utilizzare il nuovo PHP SDK 4 per l'API. Ha bisogno di PHP 5.4+, assicurati di averlo sul tuo server. Ecco alcuni link per iniziare, i documenti di Facebook non sono molto dettagliati del nuovo PHP SDK (ancora):

Cosa potresti voler usare è il "JavaScript Login Helper".

Modifica: mi rendo conto che non è nemmeno necessario utilizzare il PHP SDK per questo, poiché richiedi anche i dati di base tramite JavaScript. Quindi tutto ciò che devi fare è usare AJAX per chiamare il file PHP con il codice di archiviazione del database.

Esempio Ajax Codice:

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');
.

Non sono sicuro Se sai come utilizzare MySQL, ma dovresti Google per "DOP" - il modo consigliato per utilizzare MySQL con PHP: http://php.net/manual/en/book.pdo.php

Altri suggerimenti

Vai attraverso questo - https://developers.facebook.com/docs/reference/php/4.0.0 Tutto è descritto qui.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top