Domanda

Qualcuno sa perché, non importa quanti commenti di un determinato aggiornamento di stato oggetto grafico ha, sarà coronare i commenti a 25? Ho la sensazione che restituisce solo un 'campione' dei commenti effettivi sull'oggetto. Come faccio a costringerlo a farli tutti senza usare le API FQL?

È stato utile?

Soluzione

Questo è solo il modo in cui funziona il Graph API. Date un'occhiata alla documentazione API. È possibile ottenere 25 alla volta e devono ciclo attraverso di loro. È possibile utilizzare il timestamp (created_time) dell'ultimo commento nel batch come parametro nella prossima chiamata API grafico oppure è possibile utilizzare il parametro offset. Che è quello che ho fatto. Stavo correndo in qualche screwiness utilizzando created_time. Questo è un esempio dal mio C # applicazione di test. Ignorare i riferimenti all'oggetto PostComment che è solo una struttura di dati che ho creato per contenere i dati che sto tirando. La magia (e il processo sto riferimento) è nei parametri essere passato alla chiamata API grafico:

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

Sono abbastanza certo è possibile impostare il "limite" per niente 25 o al di sotto.

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top