Facebook Graph API - 对于v2.1及更高版本,不推荐使用fql

时间:2014-09-23 07:17:58

标签: php facebook facebook-graph-api

我知道在stackoverflow上会有类似的问题,但在我的情况下它似乎不起作用。

这是我的代码:

public function fetchFriendDetails($accessToken, $userId) { // echo $accessToken; exit;
        $curlUrl = 'https://graph.facebook.com/fql?access_token=' . $accessToken . '&pretty=0&q={' . urlencode('"v_1":"select uid,name,birthday_date,username,current_location from user where uid in (select uid1 from friend where uid2=me()) order by birthday_date desc"') . '}';

        $ch = curl_init($curlUrl);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);

        $intermediate = Util::convertJsonString($output, 'uid', '\,', ',');
        return Util::convertJsonString($intermediate, 'id', '\,', ',');
    }

它给了我以下输出:

{"error":{"message":"(#12) fql is deprecated for versions v2.1 and higher","type":"OAuthException","code":12}}

我知道它已被弃用https://developers.facebook.com/docs/apps/changelog但有人可以帮助我在上面的代码中应该更改哪些内容以便返回准确的结果?

任何帮助将不胜感激。提前致谢

1 个答案:

答案 0 :(得分:4)

您需要专门申请低于2.1的版本

https://graph.facebook.com/v2.0/fql?access_token=

此外,如果您使用的令牌是通过v2.1应用程序发出的,则无论您尝试什么,它都将无效。