Facebook API - 结交朋友的家乡

时间:2013-02-12 17:43:16

标签: php facebook facebook-graph-api

我想找回所有朋友的家乡,我使用类似的PHP来检索他们的名字。我认为使用的代码应该工作,但我认为因为有些用户没有设置它不会工作的家乡,并且说每个参数都是无效的(尽管这可能是完全错误的)。

当只需输入网络浏览器的URL时,我得到以下结构:

{
   "id": "z",
   "friends": {
      "data": [
        {
            "name": "x",
            "hometown": {
               "id": "x",
               "name": "x"
            },
            "id": "x"
         },

然后对朋友列表中的每个用户重复一次,但对于没有家乡的朋友,则省略以下内容:

"hometown": {
             "id": "x",
             "name": "x"
                },

要检索姓名和生日,我使用了以下PHP:


$response2 = curl_exec($ch2);
$user2 = json_decode($response2, true);
$user3=$user2{'friends'};
$user4=$user3['data'];
echo ("<h2>Friend List</h2><br>");
foreach($user4 as $friend) {
    echo $friend["name"] . "<br />" . $friend["birthday"] . "<br /><br />";
    }
}

PS我知道变量名称并不是特别好,但是一旦我弄清楚我为家乡做了什么,我就会改变它们。

非常感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:0)

不是每个人都可以将他们的家乡或位置提供给他们的朋友。在这种情况下,您将无法通过API获取数据,需要检查它。

为了获得比查询家乡更多的数据,我们还读出了current_location。

通过Graph API,您可以使用此资源:https://graph.facebook.com/me/friends?fields=hometown,location

如果您使用FQL,可以使用如下查询:

SELECT uid, first_name, last_name, current_location, hometown_location, friend_count, mutual_friend_count FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())

请注意,您需要friends_locationfriends_hometown权限才能阅读这些字段。