Phonegap Facebook Connect - 获得用户的生日和名字

时间:2015-08-26 02:50:24

标签: javascript facebook cordova facebook-graph-api phonegap-build

我的应用程序处于早期开发阶段。我正在使用最新的PhoneGap Build和Facebook Connect插件。我设法让登录工作 - 你点击登录Facebook按钮,它切换到Facebook应用程序,Facebook通过我的应用程序使用基本登录密钥/令牌& userID,然后我的应用尝试触及用户的全名和年龄。

我似乎无法让Facebook向我提供除用户ID和全名以外的任何信息。我需要用户的年龄!出于某种原因,添加投影不起作用......我的代码出了什么问题?

var fbLoginSuccess = function (userData) {
    facebookConnectPlugin.getAccessToken(function(token) {
        if(userData['status'] == 'connected'){
            getBasicUserInfo_fb(userData);
        }
    }, function(err) {
        alert("Could not get access token: " + err);
    });
}

function getBasicUserInfo_fb(userData){
    facebookConnectPlugin.api(userData['authResponse']['userID'] + "/?fields=id,birthday", ["user_birthday"], function (response) {
        if (response && !response.error) {
            alert("response: " + JSON.stringify(response));
            console.log(response);
            var user_name = response['name'];
            var user_age = response['birthday'];
            var user_picture = response['picture'];
        }
    },
    function (error) {
        console.log(error);
        alert("Failed: " + JSON.stringify(error));
    });
}

Github页面(https://github.com/Wizcorp/phonegap-facebook-plugin)说:

  

获得用户生日

     

使用图形api这是一项非常简单的任务:

facebookConnectPlugin.api("<user-id>/?fields=id,email", ["user_birthday"],
    function (result) {
        alert("Result: " + JSON.stringify(result));
        /* alerts:
            {
                "id": "000000123456789",
                "email": "myemail@example.com"
            }
        */
    },
    function (error) {
        alert("Failed: " + error);
    });

我可能会失去理智,但是Github上的例子是说如何获得生日,并且范围设置为获得,但是然后设置参数以获取电子邮件地址。基本上我所做的一切都被改变了#id; id,email&#34;去生日&#34; ...我做错了什么?!

1 个答案:

答案 0 :(得分:1)

显然我错了#34; user_profile&#34;在我的初始登录请求中......我猜它只接受一个参数?

糟糕的版本:

facebookConnectPlugin.login(["public_profile","user_birthday"],
    fbLoginSuccess,
    function (error) { alert("" + error) }
);

好的版本:

facebookConnectPlugin.login(["user_birthday"],
    fbLoginSuccess,
    function (error) { alert("" + error) }
);