使用 fb.api 的 Facebook 用户位置

Posted

技术标签:

【中文标题】使用 fb.api 的 Facebook 用户位置【英文标题】:Facebook user location using fb.api 【发布时间】:2014-02-15 09:57:42 【问题描述】:

我想允许我的用户使用 facebook 登录,而当用户这样做时,我想收集那里的信息,例如姓名、电子邮件、位置、性别等。我面临两个问题

    FB.api 并不总是返回用户的位置。

    我无法使用 user_birhtday 获取用户的生日。代码如下。

    FB.getLoginStatus(函数(响应) 
        if (response.status === '已连接') 
            FB.api('/me?fields=age_range,name,location,email,gender', function(response) 
                //获取用户信息
            );
         别的 
            FB.登录(功能(响应)
                如果(response.authResponse)
                    FB.api('/me?fields=age_range,name,location,email,gender', function(response) 
                        //获取用户信息
                    );
                 别的 
                    // 用户未登录
                
            , 
                范围:'电子邮件');
        
    , 真的);
    

【问题讨论】:

【参考方案1】:

您有一个非常清晰的权限列表,您必须请求这些权限才能查询用户数据的各个部分。请参阅user 页面上的权限部分(滚动到页面末尾)并将它们添加到您的范围参数中。

对于生日和位置,您必须进行以下更改:

-- scope : 'email' 
++ scope : ['email','user_birthday','user_location']

并添加

生日

字段添加到您的字段列表中。

这应该可以解决您的问题。

【讨论】:

我的生日字段值未定义。 这意味着,有些用户没有生日字段,或者只是不想与其他人分享......或者,你的意思是你总是不确定? 我总是不确定。你如何获得价值?使用 response.birthday ryt? 可以检查你的access_token是否对developers.facebook.com/tools/debug有user_birthday权限

以上是关于使用 fb.api 的 Facebook 用户位置的主要内容,如果未能解决你的问题,请参考以下文章

Facebook SDK FB.API 发布截图和用户消息

Fb.Logout 功能不会注销用户

手动获取文本到墙贴文本区域(使用 FB API 在 facebook 上共享 - Android)

通过图形 api 方法 fb.api() 获取页面的选项卡并将选项卡添加到 facebook 页面会导致错误

在新的 FB API 上为非应用用户访问好友列表

使用FB.api将Facebook好友添加到好友列表中