繁体   English   中英

如何使用php将用户信息从facebook sdk提取到我网站的数据库中

[英]how to pull user information from facebook sdk into my site's database using php

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

编辑:我认为我需要使用响应对象,但是mi应该在哪里放置对象请求? 和PHP的“后”代码? 我是php的新手,以下代码行在哪里?

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

});

将返回一个值数组:

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

编辑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));
 } 

Facebook建议对API使用新的PHP SDK 4。 它需要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”-与PHP一起使用MySQL的推荐方法: http : //php.net/manual/zh/book.pdo.php

经历这个https://developers.facebook.com/docs/reference/php/4.0.0都在这里描述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM