Frage

Wer weiß, warum, egal wie viele Kommentare ein gegebenes Graph Status-Update-Objekt hat, wird es die Kommentare bei 25 cap? Ich habe das Gefühl, es nur eine ‚Probe‘ von den tatsächlichen Kommentare über das Objekt zurückgibt. Wie kann ich sie zwingen, sie alle ohne Verwendung der FQL APIs zu bekommen?

War es hilfreich?

Lösung

Dies ist nur die Art und Weise der Graph API funktioniert. Werfen Sie einen Blick auf die API-Dokumentation. Sie erhalten 25 zu einer Zeit und haben durch sie Schleife. Sie können den Zeitstempel (created_time) des letzten Kommentars im Batch als Parameter in dem nächsten Grafik-API-Aufruf verwenden, oder Sie den offset Parameter verwenden können. Das ist, was ich zu tun ist. Ich lief in einige screwiness mit created_time. Dies ist ein Beispiel aus meinem C # Test-App. Ignorieren Sie die Verweise auf das PostComment Objekt, das nur eine Datenstruktur, das ich geschaffen, um die Daten zu halten Ich ziehe. Die Magie (und der Prozess i Referenzierung bin) in den Parametern der Grafik-API-Aufruf übergeben werden:

parameters.Add("offset", numPostComments);
parameters.Add("limit", 25);

Ich bin ziemlich sicher, dass Sie das „Limit“ einstellen können, dass etwas 25 oder darunter.

do
{
    foreach (var comment in comments.data)
        {
            numPostComments++;
            PostComment pc = new PostComment();
            pc.Post_ID = p.Id;
            pc.Facebook_ID = comment.id;
            pc.From = comment.from.name;
            if (comment.likes != null)
                pc.Likes = (int)comment.likes;
            pc.CommentDate = DateTime.Parse(comment.created_time);
            pc.CommentText = comment.message;
            p.Comments.Add(pc);
        }
        // Create new Parameters object for call to API
        Dictionary<string, object> parameters = new Dictionary<string, object>();
        parameters.Add("offset", numPostComments);
        parameters.Add("limit", 25);

        // Call the API to get the next block of 25
        comments = client.Get(string.Format("{0}/comments", p.Facebook_ID), parameters);
} while (comments.data.Count > 0);

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top