0

我想检索我所有朋友的家乡,我正在使用与检索他们姓名类似的 PHP。我认为我使用的代码应该可以工作,但我认为因为有些用户没有设置家乡,所以它不会工作,并说 for each 参数是无效的(尽管这可能是完全错误的)。

只需在 Web 浏览器中输入 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我知道变量名不是特别好,但是一旦我弄清楚我为家乡做了什么,我就会改变它们!

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

4

1 回答 1

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权限才能读取这些字段。

于 2013-02-12T18:10:25.483 回答