Pregunta

¿Alguien sabe por qué, no importa la cantidad de comentarios una actualización de estado gráfico de objetos dado cuenta, que será la culminación de los comentarios a los 25? Tengo la sensación de que sólo devuelve una 'muestra' de las observaciones reales en el objeto. ¿Cómo fuerzo para llegar a todos ellos sin necesidad de utilizar las API FQL?

¿Fue útil?

Solución

Esto es sólo la forma en que funciona el API de gráficos. Echar un vistazo a los documentos de la API. Usted obtiene 25 a la vez y tiene que bucle a través de ellos. Puede utilizar la marca de tiempo (CREATED_TIME) del último comentario en el lote como un parámetro en la siguiente llamada API de gráficos o puede utilizar el parámetro offset. Que es lo que he estado haciendo. Yo estaba corriendo en algún screwiness usando created_time. Este es un ejemplo de mi aplicación #test C. No haga caso de las referencias al objeto PostComment eso es sólo una estructura de datos que he creado para contener los datos que estoy tirando. La magia (y el proceso que estoy referenciado) en los parámetros que se pasa a la llamada a la API gráfica:

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

Estoy bastante seguro de que puede establecer el "límite" a cualquier cosa de 25 o por debajo.

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top