如何从Facebook Graph API获取所有朋友的Feed

时间:2011-01-11 16:24:36

标签: php facebook facebook-graph-api

我在我的脸书应用程序上使用php sdk并要求获得所需的扩展许可。 我可以从api call

中使用我的应用程序的用户更新所有状态
$statuses = $facebook->api('/me/statuses?limit=0');

但是当我和这位用户的朋友使用相同的方法时。

$friendStatuses = $facebook->api('/'.$user_id.'/statuses?limit=0');

我有一个空白数组。我试图不使用“?limit = 0”,但结果仍然相同。

我也尝试使用

$friendFeed = $facebook->api('/'.$user_id.'/feed?limit=0');

并从该用户获得了一些Feed但不是全部。即使我将“?limit = 0”更改为“limit = 1000”,但我获得的Feed大约是500件,但该用户的Feed比肯定的多。

我的工作目标是收集用户和朋友的状态并将其聚类。

2 个答案:

答案 0 :(得分:4)

获取用户朋友的Feed的正确方法是您使用的最后一个示例:

$friendFeed = $facebook->api("/{$user_id}/feed?limit=0");

如果您要获得某些Feed项目,但不是所有预期的项目,则可能是您没有正确的权限。 read_stream权限可以查看非公开帖子,因此,请仔细检查您是否拥有read_stream权限。您可以通过运行FQL查询进行检查:

SELECT read_stream FROM permissions WHERE uid = me()

我不是100%肯定你会如何使用你正在使用的SDK,但它可能是:

$readStream = $facebook->api("/method/fql.query?query=SELECT+read_stream+FROM+permissions+WHERE+uid+=+me()");
祝你好运!


您可以阅读有关运行FQL查询here的更多信息 您可以阅读有关权限表here的更多信息 您可以阅读有关图api的用户对象here的更多信息。

答案 1 :(得分:0)

$num = 0;
$result = $facebook->api( array('method' => 'fql.query', 'query' => 'SELECT uid2 FROM friend WHERE uid1=me()') );
foreach($result as $photo){
$num++;
}

使用此功能,计算好友的速度更快