我正在调试一个较旧的脚本,并且来到了应该查询Facebook用户的一些数据并将其存储到数据库中的部分。
某些范围如publish_stream已被弃用,因此我将其替换为“publish_actions”。至少有一些我无法弄清楚的东西。我想查询用户的名字和姓氏,但是这个响应仍然是空的,唯一可行的是缩略图和用户ID。
所以这里是范围(我知道public_profile不是必需的,但Facebook推荐它)。
//function handleFacebookAuth(callback) {
function handleFacebookAuth(callback) {
var permissions = '';
//noinspection JSUnresolvedVariable
if (window.extendedPerms) {
permissions = 'public_profile,email,publish_actions,user_likes,' + window.extendedPerms;
} else {
permissions = 'public_profile,email,publish_actions';
}
if (accessToken != null && userId != null) {
callback(accessToken, userId);
} else {
FB.login(function (response) {
if (response.authResponse) {
userId = response.authResponse.userID;
accessToken = response.authResponse.accessToken;
callback(accessToken, userId);
} else {
$("#white-wall").hide();
}
}, {scope: permissions});
}
return false;
}
这里是对数据的查询
function sendData(moves, seconds) {
FB.api('/me', function (response) {
var data = {
access_token: accessToken,
flag: 'data',
fbuid: response.id,
moves: moves,
seconds: seconds,
fname: response.first_name,
lname: response.last_name,
email: response.email,
gender: response.gender
};
userId = response.id;
$.ajax({
url: "ajax.php",
data: data, dataType: 'html', method: "post",
error: function (data) {
alert(data.responseText);
},
success: function (data) {
console.log(data);
//$( "#gameresults" ).html( data);
$('#gameresults').html(data);
$("#triggerbtn").fancybox({
'width': 480,
'height': 550,
'autoSize': false,
'overlayShow': false,
'scrolling': 'no'
});
$("#triggerbtn").trigger('click');
//window.top.location.href = data;
}
});
});
}
我希望也许有人看到它的错误,我真的无法弄清楚它有什么问题,也许问题可能在其他地方,听到我上面的代码没问题会很好。
答案 0 :(得分:0)
好的,谢谢WizKid的暗示解决方案非常简单 我加入了/ me
FB.api('/me?fields=id,first_name,last_name,email,gender', function (response) {
这就是全部..