0

我想获取特定用户的所有帖子..我知道它们是有限的,所以我每次都会收到 100 个帖子...

$total2 = 0;
try {
    for ($i = 0; $i < 2000; $i = $i + 100) {
        $fql2 = "SELECT post_id, comments, message 
                FROM stream
                WHERE source_id = me() 
                LIMIT " . $i . "," . ($i + 100);
        $param2 = array(
            'method' => 'fql.query',
            'query' => $fql2,
            'callback' => ''
        );
        $fqlResult2 = $facebook->api($param2);
        $total2 = $total2 + count($fqlResult2);
    }
} catch (Exception $o) {
    d($o);
}

但是在运行时,服务器挂起,给出 500(内部服务器错误)..

当我将其设为 300 时,循环迭代器将不会挂起......

有任何想法吗 ?

4

2 回答 2

0

我相信你的 $parms2 数组应该是这样的:

        $param2 = array(
        'method' => 'fql.query',
        'access_token' => $access_token,
        'query' => $fql2,
        'callback' => ''
    );

我相信要获取用户的帖子,您需要一个访问令牌,以便您可以获得 access_token 有权访问的帖子。

于 2012-11-26T19:22:23.923 回答
0

我建议使用批量请求:

https://developers.facebook.com/docs/reference/api/batch/

您可以在批处理请求中堆叠多达 50 个调用,而且速度要快得多。

于 2012-11-26T19:27:03.600 回答