Come tirare le informazioni dell'utente da Facebook SDK nel database del mio sito utilizzando PHP
-
20-12-2019 - |
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));
}
. 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):
- .
- https://developers.facebook.com/docs/php/gettingStard/ 4.0.0
- http://www.devils-heaven.com / Facebook-PHP-SDK-4-0-tutorial /
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.