Экспорт комментариев из fb: comments - PullRequest
2 голосов
/ 12 сентября 2011

Я немного отчаялся по этому поводу.У меня есть сайт с полем для комментариев с 183000 комментариями, которые я хочу сделать резервную копию.Но каждый раз, когда я делаю fql.query, я получаю только 100 предметов.Я пытался:

SELECT xid, object_id, post_id, time, text, id FROM comment WHERE   xid='bdatapoyo' ORDER BY time DESC

, и после этого, используя последнее "время"

SELECT xid, object_id, post_id, time, text, id FROM comment WHERE   xid='bdatapoyo' AND time >= xxxxxxx ORDER BY time DESC

, но последнее дает мне только один комментарий ..

Я сделалстраница PHP с этим кодом, но опять же, она захватывает только 100 элементов:

<?php        
    require 'php-sdk/src/facebook.php';

    $facebook = new Facebook(array(
    'appId'  => 'XXXXXXXXXX',
    'secret' => 'XXXXXXXXXX',
    'cookie' => true,
    ));

    $conexion = mysql_connect("localhost", "XXXX", "XXXX");
    mysql_select_db("TVN", $conexion);

    $time_old = "1315070888";
    do {

        $fql = "SELECT fromid,time,text FROM comment WHERE xid='bdatapoyo' AND time >= " . $time_old . " ORDER BY time";

        $response = $facebook->api(array(
            'method' => 'fql.query',
            'query' =>$fql,
        ));

        foreach($response as $key => $value) {
            $sql = "INSERT INTO comment (text, uuid, time) VALUES ('" . $value["text"] . "', '" . $value["fromid"] . "', '" . $value["time"] . "')";     
            $result = mysql_query($sql);
        }

        $time_old = $response[count($response)-1]["time"];
        print_r($time_old);
    } while (count($response) > 0);

    ?>

Ответы [ 2 ]

2 голосов
/ 18 сентября 2011

ОК, я смог вытащить это с помощью LIMIT и OFFSET.Правильный FQL -

SELECT fromid,time,text FROM comment WHERE xid='bdatapoyo' LIMIT 100 OFFSET 0

, а затем выполняется пейджинг с OFFSET

0 голосов
/ 16 мая 2012

это настройка кода для импорта каждого комментария в БД от всех пользователей на вашем сайте? Что такое xid = bdatapoyo?

...