如何显示我所有的Facebook“喜欢”以及相关的“粉丝”总数?

时间:2011-06-22 22:31:57

标签: php sql facebook facebook-graph-api facebook-fql

我一直在测试一种方式来显示我所有的Facebook“喜欢”以及相关数量的“粉丝”。下面的代码可以工作,但非常......非常慢......我认为它是如此之慢,因为由于foreach函数需要通过Facebook的api进行大量查询。有没有与我在下面做同样的事情,但只有一个查询(不使用foreach)?

require_once('src/facebook.php');
$facebook = new Facebook(array(
    'appId'  => '12345',
    'secret' => 'blablabla',
    'api' => '172737262',
    'cookie' => true,
));
$likes = $facebook->api('/me/likes');

foreach($likes[data] as $value){
$id = $value['id'];
$fans = $facebook->api(array(
    'method' => 'fql.query',
    'query' => "select fan_count,name from page where page_id = $id;"
));

echo "$id - {$fans[0]['fan_count']} - {$value['name']}<br>";
unset($id,$fans);
}

1 个答案:

答案 0 :(得分:0)

我不熟悉Facebook API,但一般来说,当您进行SQL查询时,您不希望比必须更频繁地查询数据库,因为访问数据库是一项昂贵的操作。

因此,不要使用带有此查询的for循环来一次一个地选择每个页面ID的扇形数,一遍又一遍,

'query' => "select fan_count,name from page where page_id = $id;"

您可以从for循环中删除查询并重写它以在一个查询中一次性选择所有扇形计数,使用IN SQL语法,如

$ids = "id1, id2, ... , idn";

// ...

'query' => "select fan_count,name from page where page_id in ($ids);"

也许这可行?