Phonegap Facebook Connect - 获取用户的生日和姓名

Posted

技术标签:

【中文标题】Phonegap Facebook Connect - 获取用户的生日和姓名【英文标题】:Phonegap Facebook Connect - Getting User's Birthday and Name 【发布时间】:2015-08-26 02:50:23 【问题描述】:

我的应用处于早期开发阶段。我正在使用最新的 PhoneGap Build 和 Facebook Connect 插件。我设法让登录正常工作 - 你点击 Login With Facebook 按钮,它切换到 Facebook 应用程序,Facebook 将一个带有基本登录密钥/令牌和用户 ID 的对象传递给我的应用程序,然后我的应用程序尝试联系用户的全名和年龄。

我似乎无法让 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,email”更改为“id,birthday”......我做错了什么?!

【问题讨论】:

【参考方案1】:

显然我的初始登录请求中包含“user_profile”是错误的...我猜它只接受一个参数?

糟糕的版本:

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

好版本:

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

【讨论】:

以上是关于Phonegap Facebook Connect - 获取用户的生日和姓名的主要内容,如果未能解决你的问题,请参考以下文章

phonegap facebook connect 在 iphone 4 和 iphone 5 上失败

Facebook“错误 2”与 Phonegap 在 ios 上构建 Facebook Connect 插件

Cordova/Phonegap iOS:Facebook Connect 插件没有访问权限

Phonegap Facebook Connect - 获取用户的生日和姓名

phonegap 3.3 iOS Facebook Connect redirect_uri 必须是绝对的

挣扎于 Facebook Connect 和 Phonegap Build