![](/img/trans.png)
[英]How to retrieve facebook user's friends email information with facebook php 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.