これは私のコードのスリム化されたバージョンです(初期化呼び出しなし)。FB.apiにuntil値を渡して連続して呼び出すたびにlimit/2 が返されることを除いて、すべてが完全に機能します。別のFacebookアカウントを使用して、通話の合間に1分ほど待ってみましたが、問題は解決しません.
返されたオブジェクトの次のパラメーターを確認したところ、URL は、 dataUltimoPostとまったく同じ番号のuntilパラメーターを追加するだけです。URL を呼び出すと、投稿の半分も返されます。
こことここで一貫性のないリターンを持つ他の投稿を見つけましたが、ページングの側面に直接対処するものはありません。偶然にも、私のコードと同じロジックを使用して投稿をページ化するこの投稿に出くわしました。だから私は正しい軌道に乗っていると思います。
機能:
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