这是我的代码的精简版(没有初始化调用)。一切都运行得很好,除了每次连续调用我将直到值传递到 FB.api 时,返回限制/ 2。我已经尝试在通话之间等待多达1分钟,使用不同的Facebook帐户,但它没有帮助。
我检查了返回对象中的 next 参数,而网址只是添加直到参数,其编号与我的 dataUltimoPost 完全相同。当我调用URL时,它也会返回一半的帖子。
我发现其他帖子的回复率here和here不一致,但没有一个直接解决了分页问题。巧合的是,我遇到了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
答案 0 :(得分:1)
以下是来自Facebook自己的博客文章,原因是您在要求25时没有获得25个结果。
http://developers.facebook.com/blog/post/478/
他们已明确承认,在应用过滤之前,他们的FQL过滤机制会预先限制结果集。这是关于正在发生的事情的视觉效果。