Question

Quelqu'un sait pourquoi peu importe combien de commentaires d'un objet de mise à jour de l'état graphique donné a, il plafonner les commentaires à 25? J'ai le sentiment qu'il ne renvoie qu'un « échantillon » des commentaires réels sur l'objet. Comment puis-je forcer à les obtenir tous sans utiliser les API FQL?

Était-ce utile?

La solution

Ceci est juste la façon dont l'API graphique fonctionne. Jetez un oeil à l'API docs. Vous obtenez 25 à un moment et doivent en boucle à travers eux. Vous pouvez utiliser l'horodatage (created_time) du dernier commentaire dans le lot en tant que paramètre dans le prochain appel de l'API graphique ou vous pouvez utiliser le paramètre offset. Ce qui est ce que je fais. Je courais dans certains screwiness en utilisant created_time. Ceci est un exemple de mon C # application de test. Ignorer les références à l'objet PostComment qui est juste une structure de données que j'ai créé pour contenir les données je tire. La magie (et le processus que je fais référence) est dans les paramètres étant transmis à l'API graphique appel:

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

Je suis assez certain que vous pouvez définir la « limite » à quoi que ce soit 25 ou ci-dessous.

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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top