我已经使用Facebook的java脚本sdk在我的网站上启用了facebook登录。现在我想从Facebook提取用户的基本信息,并将其存储在我网站的MySQL数据库中。我需要这个通过PHP完成,因为替代注册页面是在PHP中实现的。如果有任何其他更好的方法,请提及。
编辑: 我遵循,我需要使用响应对象,但我应该放置对象请求?和PHP“发布”代码? 我对php比较新,下面的代码行在哪里?
FB.api('/me', function(response) {
console.log(JSON.stringify(response));
});
将返回一组值:
{ “ID”: “101540562372987329832845483” “电子邮件”:“example@example.com” “FIRST_NAME”: “鲍勃”, [...] }
编辑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));
}
答案 0 :(得分:3)
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,但您应该谷歌“PDO” - 使用MySQL和PHP的推荐方法:http://php.net/manual/en/book.pdo.php
答案 1 :(得分:1)
仔细阅读 - https://developers.facebook.com/docs/reference/php/4.0.0
一切都在这里描述。