如何进行Facebook FQL查询以选择所有朋友


How to make a Facebook FQL query to select all friends

我是PHP SDK Facebook的新手,所以很抱歉,如果这个问题很愚蠢。

所以,我有这个代码

SELECT name FROM user
    WHERE current_location.country = 'Italy' AND
    uid IN (
        SELECT uid2 FROM friend WHERE uid1 = me()
    ) 

这回答了我:

{
  "data": [
    {
      "name": "Matilde xxxx"
    }, 
    {
      "name": "Samson xxxxxxxx"
    },  
    {
      "name": "Emanuela xxxxxxx"
    }
  ]
}

我正在使用这个网站来分析如何管理 json :http://chris.photobooks.com/json/default.htm

看到,如果我想请求朋友的名字,我必须这样做:root.data[5].name

这就是我的PHP代码:

$user_id = $facebook->getUser();

$all_friends = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT name FROM user
        WHERE current_location.country = "Italy" AND
        uid IN (
            SELECT uid2 FROM friend WHERE uid1 = 1068943079
        ) '));
        $val = 1;
        echo $all_friends['data'][$val]['name'];

(是一个测试,我想在key=1见朋友)但只有白页...什么都不显示..如果我确实回显$all_friends,我会看到数组。

对不起,如果这是一个愚蠢的问题,我知道我可以使用另一种方法来做到这一点。但是我想知道如何使用这种方式!谢谢,对不起我的语言。

这就是我的所有代码:点击这里查看我的代码

1. 您应该print_r($all_friends)检查数组的结构

尝试

echo $all_friends[$val]['name'];

2. FQL 查询应仅在$user != 0 时发生。

将其放在if语句下

3. 您没有征求read_friendlists许可

$params = array(
  'scope' => 'read_friendlists'
);
$loginUrl = $facebook->getLoginUrl($params);

医生:

  • https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/
  • https://developers.facebook.com/docs/reference/fql/friendlist/