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

バッチ リクエストを使用することをお勧めします。

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

バッチ リクエストで最大 50 の呼び出しをスタックでき、はるかに高速です。

于 2012-11-26T19:27:03.600 に答える
0

$parms2 配列は次のようになります。

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

access_token がアクセスできる投稿を取得できるように、アクセストークンが必要なユーザーごとに投稿を取得すると思います。

于 2012-11-26T19:22:23.923 に答える