Facebook Graph API:获取用户位置

6
有没有一种方法可以使用Graph API获取我Facebook好友的位置?
7个回答

8

你的朋友被视为一个用户,所以你需要前往用户文档,获取字段名location(在fields参数中发送),并检查是否需要特定权限:

需要user_locationfriend_location权限

然而,这里有个打字错误!要获取你朋友的位置,你需要使用friends_location(带有s),参见此处

以下是PHP-SDK的示例:

$facebook->api('/friend_id', 'get', array("fields"=>"name,location"));

在这里,我正在检索名称位置字段(请注意,id字段将自动检索)。


这个对你有用吗?我真的无法让它工作。只返回名称(与friendS_location正确请求权限)。 - grm
@grm:是的,它可以但是你的朋友应该设置城市出现!我发现40%的朋友没有设置! - ifaour
请记住,location字段返回一个对象。为了检索位置,您必须使用$profile['location']->name。 - Dan H

2

如果您想从用户的朋友那里获取所需信息,最快捷的方法是使用FQL方法:

$this->api->api(array('method'=>'fql.query','query'=>"SELECT uid,name,first_name,middle_name,last_name,pic_square,hometown_location,current_location,profile_url,email,website FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"));

要查看所有表格及其对应列名的列表,请参阅:Facebook FQL 参考文档


2
FB.api('/me', function(response) {
    var location = response.location.name;
});

1

2
作为一个小提示,通常情况下,您需要提供更多的内容而不仅仅是一个链接。包括示例代码和详细说明是产生高质量答案的好方法。我稍微编辑了您的答案以帮助您。 - Josh

1

1
fql?q=SELECT locale,current_location from user where uid in(select uid2 from friend where uid1=me())

需要用户位置或好友位置权限


0
FB.api('/me', function(response) {
    document.getElementById("UserLocation").innerHTML = response.location.name; 
});

在你的HTML代码中,使用UserLocation ID来调用任何HTML标签。例如:
<div id="UserLocation"></div>        

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接