Как вытащить информацию о пользователе из Facebook SDK в базу данных моего сайта с помощью PHP

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

Вопрос

Я включил в систему Facebook в моем сайте, используя Java SDK SDK Facebook. Теперь я хочу потянуть основную информацию пользователя из Facebook и хранить ее в базе данных MySQL моего сайта. Мне нужно это сделать через PHP, так как альтернативная страница регистрации реализована в PHP. Если какой-либо другой лучший путь возможно, пожалуйста, упомяните.

Редактировать: Я следую, что мне нужно использовать объект ответа, но где M I предполагал разместить запрос объекта? и PHP «пост» коды? Я относительно новичок в PHP, где принадлежат строки кода ниже?

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

});

вернет массив значений:

{ «ID»: «101540562372987329832845483», «Email»: «Example@example.com», "first_name": "Боб", [...] }

Редактировать 2:

fb.Api делает вызов API и получает объект ответа, содержащий пользовательскую информацию, но мне нужно использовать точный «код1» ниже, или я могу использовать другой путь, как в «Code2», что я знаком с ?

Код1:

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

код 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));
 } 
.

Это было полезно?

Решение

Facebook рекомендует использовать новый PHP SDK 4 для API. Он нуждается в PHP 5.4+, убедитесь, что вы получили это на вашем сервере. Вот некоторые ссылки для начала, документы Facebook не очень подробны о новом PHP SDK (пока):

То, что вы можете использовать, - это «помощник входа в систему JavaScript».

Редактировать: Я понимаю, что вам даже не нужно использовать PHP SDK для этого, так как вы даже запросите основные данные через JavaScript. Таким образом, все, что вам нужно сделать, это использовать AJAX, чтобы позвонить в файл PHP с помощью кода хранения базы данных.

Пример 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');
.

Не уверены, знаете ли вы, как использовать MySQL, но вы должны Google для «PDO» - рекомендуемый способ использовать MySQL с PHP: http://php.net/manual/en/book.pdo.php

Другие советы

Пройдите через это - https://developers.facebook.com/docs/reference/php/4.0.0 Все описано здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top