$access_token = $facebook->getAccessToken();
$query = "SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())";
$query = urlencode($query);
$fql_query_url = 'https://graph.facebook.com/'. 'fql?q='.$query. '&access_token=' . $access_token;
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
这是查询。它对我来说更快,因为我的 friend 有限。但是一些应用程序用户说,如果他们有大约 2000 多个 friend ,这对他们来说会非常非常慢。他们说也需要 30 秒到几分钟。
为什么它很慢?这个请求有没有错误?
最佳答案
好吧,首先 - 只要您按 uid
过滤用户,然后只选择 uid
- 外部查询看起来是多余的。所以最终的查询可以简化为
SELECT uid2 FROM friend WHERE uid1=me()
第二件事:使用fb php sdk 执行FQL 查询更方便一些,而不是file_get_contents
,例如:
$facebook->api("/fql?q={$fql}");
关于php - Facebook FQL——非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499622/