Wenn Sie den Facebook-Newsfeed (me / home) mit dem Parameter until aufrufen, wird bei jedem weiteren Aufruf limit / 2 zurückgegeben

Hier ist eine abgespeckte Version meines Codes (ohne die Initialisierungsaufrufe). Alles funktioniert einwandfrei, bis auf jeden weiteren Anruf, den ich übergebebis um Wert inFB.api, gibt mir limit / 2 zurück. Ich habe versucht, bis zu 1 Minute zwischen den Anrufen zu warten, wobei verschiedene Facebook-Konten verwendet wurden, aber das hilft nichts.

Ich habe das überprüftNächster Parameter im zurückgegebenen Objekt, und die URL fügt einfach diebis um Parameter mit der exakt gleichen Nummer wie meinedataUltimoPost. Wenn ich die URL aufrufe, gibt sie auch die Hälfte der Beiträge zurück.

Ich habe andere Posts mit inkonsistenten Rückgaben gefundenHier undHier, aber keiner spricht den Paging-Aspekt direkt an. Zufällig bin ich gestoßendieser Beitrag die die gleiche Logik wie mein Code verwendet, um Beiträge zu blättern. Ich denke also, ich bin auf dem richtigen Weg.

Funktionen:

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);
}

Aufrufen der Funktionen:

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage