Facebook Graph API,名字保持空白

时间:2016-04-02 21:13:46

标签: javascript facebook facebook-graph-api

我正在调试一个较旧的脚本,并且来到了应该查询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;
            }
        });
    });
}

我希望也许有人看到它的错误,我真的无法弄清楚它有什么问题,也许问题可能在其他地方,听到我上面的代码没问题会很好。

1 个答案:

答案 0 :(得分:0)

好的,谢谢WizKid的暗示解决方案非常简单 我加入了/ me

FB.api('/me?fields=id,first_name,last_name,email,gender', function (response) {

这就是全部..