使用until参数调用Facebook新闻源(me / home),每次连续调用返回limit / 2

时间:2012-06-05 14:14:36

标签: javascript facebook-graph-api pagination

这是我的代码的精简版(没有初始化调用)。一切都运行得很好,除了每次连续调用我将直到值传递到 FB.api 时,返回限制/ 2。我已经尝试在通话之间等待多达1分钟,使用不同的Facebook帐户,但它没有帮助。

我检查了返回对象中的 next 参数,而网址只是添加直到参数,其编号与我的 dataUltimoPost 完全相同。当我调用URL时,它也会返回一半的帖子。

我发现其他帖子的回复率herehere不一致,但没有一个直接解决了分页问题。巧合的是,我遇到了this post,它使用与我的代码相同的逻辑来发布帖子。所以我认为我走在了正确的轨道上。

功能:

function getPost (success, append) {
    var params = { limit: 25, date_format: 'U' };
    if (append)
        params.until = dataUltimoPost;

    FB.api('/me/home', 'get', params, function (userData) {
        if (userData.data.length > 0)
            dataUltimoPost = userData.data[userData.data.length - 1].created_time - 1;
        success.call(this, userData.data, append);
    });
};

function fillPost(posts, append) {
    var postsHTML = '';
    append = append === true;

    alert('posts.length: ' + posts.length + ' - append: ' + append);
}

调用函数:

getPost(fillPost); //returns 25
getPost(fillPost, true); //returns 12
getPost(fillPost, true); //returns 1 or 0

1 个答案:

答案 0 :(得分:1)

以下是来自Facebook自己的博客文章,原因是您在要求25时没有获得25个结果。

http://developers.facebook.com/blog/post/478/

他们已明确承认,在应用过滤之前,他们的FQL过滤机制会预先限制结果集。这是关于正在发生的事情的视觉效果。

enter image description here