Facebook Graph API:获取用户城市(位置)

时间:2013-04-25 19:50:21

标签: facebook-graph-api ruby-on-rails-3.2

我目前已经实施了facebook登录并访问了用户的位置。像这样:

    user.profile.city = auth.info.location

我只需要用户的城市,但是位置给出了市和州。根据权限文档,location是用户的城市。但它也给了州。

如何只获得城市?有什么办法吗?

3 个答案:

答案 0 :(得分:3)

https://developers.facebook.com/tools/explorer/

尝试使用Graph API Explorer:/ me 只提供城市和州的位置和家乡,而不是邮政编码,国家等,

FB.api('/me', function (json) {
    var fid = json.id;
    var sCity = '';
        var sState = '';
    if (json.location !== undefined && json.location.name !== undefined) {
            var sLoc = json.location.name;
        var aLoc = sLoc.split(',');
        if (aLoc.length > 0) {
            sCity = aLoc[0];
        }
        if (aLoc.length > 1) {
            sState = aLoc[1];
        }
    }
});

答案 1 :(得分:2)

我假设你使用了gem omniauthomniauth-facebook

user.profile.city = auth.info.location.split(",")[0]

试试这个:

`auth.info.location` value = location: Olongapo City, Philippines

因为例如

return Olongapo City

使用提供的代码{{1}}

答案 2 :(得分:0)

这样做:

SELECT current_location FROM user WHERE uid=USER_ID

示例:https://developers.facebook.com/tools/explorer?fql=SELECT%20current_location%20FROM%20user%20WHERE%20uid%3D4