如何将用户信息从facebook sdk拉入我的网站';使用php创建数据库

如何将用户信息从facebook sdk拉入我的网站';使用php创建数据库,php,mysql,facebook,facebook-login,Php,Mysql,Facebook,Facebook Login,我已经使用facebook的java脚本sdk在我的网站上启用了facebook登录。现在我想从facebook上获取用户的基本信息,并将其存储在我网站的MySQL数据库中。我需要通过php完成这项工作,因为替代注册页面是用php实现的。如果有其他更好的方法,请务必提及 编辑: 我知道我需要使用响应对象,但是我应该把对象请求放在哪里?还有php“post”代码? 我对php比较陌生,下面的代码行属于哪里 FB.api('/me', function(response) { console.lo

我已经使用facebook的java脚本sdk在我的网站上启用了facebook登录。现在我想从facebook上获取用户的基本信息,并将其存储在我网站的MySQL数据库中。我需要通过php完成这项工作,因为替代注册页面是用php实现的。如果有其他更好的方法,请务必提及

编辑: 我知道我需要使用响应对象,但是我应该把对象请求放在哪里?还有php“post”代码? 我对php比较陌生,下面的代码行属于哪里

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

将返回一个值数组:

{ “id”:“101540562372987329832845483”, “电子邮件”:example@example.com", “名字”:“鲍勃”, [ ... ] }

编辑2:

FB.api api是否调用并接收包含用户信息的响应对象,但我是否必须使用下面的确切“code1”,或者我是否可以使用我熟悉的“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));
 } 

检查一下-
https://developers.facebook.com/docs/reference/php/4.0.0

所有这些都在这里描述。

请仔细阅读此-
https://developers.facebook.com/docs/reference/php/4.0.0

这里介绍了所有内容。

Facebook建议在API中使用新的PHPSDK4。它需要PHP5.4+,请确保在服务器上安装了它。这里有一些链接可以帮助您入门,Facebook文档对新的PHP SDK还不是很详细(目前):

您可能希望使用的是“JavaScript登录助手”

编辑:我意识到您甚至不需要使用PHPSDK,因为您甚至可以通过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结合使用的推荐方法:

Facebook建议在API中使用新的PHPSDK4。它需要PHP5.4+,请确保在服务器上安装了它。这里有一些链接可以帮助您入门,Facebook文档对新的PHP SDK还不是很详细(目前):

您可能希望使用的是“JavaScript登录助手”

编辑:我意识到您甚至不需要使用PHPSDK,因为您甚至可以通过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,但你应该在谷歌上搜索“PDO”——这是一种将MySQL与PHP结合使用的推荐方式:

了解了什么是PDO,做了一些进一步的挖掘,找到了两种方法来满足我的需要。我不只是想把代码复制到我的网站上,而是想了解它是如何工作的。谢谢你的思考:学习不仅仅是复制粘贴:)看到了什么PDO,做了更多的挖掘,找到了两种方法来满足我的需要。我不只是想把代码复制到我的网站上,而是想了解它是如何工作的。万岁,谢谢你的想法:学习不仅仅是复制粘贴:)当然,你需要两种代码。“用于存储信息的页面”实际上是php脚本(代码2)。您可以通过ajax将数据发送到php,并通过php将其存储在数据库中。请确保您了解javascript和php的用途。php在服务器上运行,您需要它在mysql数据库(或任何其他服务器语言)中存储某些内容。javascript在客户端上运行(node.js除外)。并确保您了解它们是如何协同工作的。那么code1只是完成了普通HTMl表单所做的工作?并将值传递给服务器端的php脚本,以便php脚本可以更改mysql?对吗?没错,这就是它的工作原理。顺便说一句,看看$.post,它是$.ajax的缩写。或者根本不使用jquery,最好在使用像jquery这样的框架之前先学习javascript。当然,这两种代码都需要。“用于存储信息的页面”实际上是php脚本(代码2)。您可以通过ajax将数据发送到php,并通过php将其存储在数据库中。请确保您了解javascript和php的用途。php在服务器上运行,您需要它在mysql数据库(或任何其他服务器语言)中存储某些内容。javascript在客户端上运行(node.js除外)。并确保您了解它们是如何协同工作的。那么code1只是完成了普通HTMl表单所做的工作?并将值传递给服务器端的php脚本,以便php脚本可以更改mysql?对吗?没错,这就是它的工作原理。顺便说一句,看看$.post,它是$.ajax的缩写。或者根本不使用jquery,最好在使用像jquery这样的框架之前先学习javascript。