python - español - Cómo recuperar todos los comentarios/me gusta a través de Facebook OpenGraph
graph api facebook español (2)
Puede recuperar comentarios y un recuento similar u otra información de una publicación en particular usando la URL o la API que se encuentra a continuación.
https://graph.facebook.com/{0}/comments?access_token={1}&limit={2}&fields=from,message,message_tags,created_time,id,attachment,like_count,comment_count,parent&order=chronological&filter=stream''.format(post_id,access_token,limit)
Como aquí el orden se especifica como cronológico, debe usar después del parámetro también en la misma url cuyo valor se puede obtener en la sección paging.cursor.after
de la primera respuesta.
Estoy tratando de recuperar comentarios y me gusta para publicaciones específicas a través de la API de opengraph de Facebook. Si bien obtengo información de vuelta, no siempre coincide con el recuento de comentarios / me gusta mencionado en la publicación. Supongo que esto se puede atribuir a los permisos de acceso del token que estoy usando. Sin embargo, me he dado cuenta de que los resultados varían en función del límite de solicitud que utilizo y, a veces, también obtengo entradas duplicadas entre las solicitudes.
Por ejemplo, la publicación 10376464573_150423345118848 tiene aproximadamente 14000 "me gusta", pero solo puedo recuperar un máximo de 5000. Con el límite predeterminado de 25 puedo obtener hasta 3021 "me gusta". Un valor de 100 da 4501, mientras que los límites de 1000, 2000, 3000 y 5000 devuelven el mismo número de me gusta, 4959 (los valores absolutos no tienen mucho sentido, por supuesto, solo están ahí para comparar).
He notado resultados similares en una escala más pequeña para comentarios.
Estoy usando un simple script de Python para buscar páginas. Recorre los datos siguiendo los enlaces de paginación proporcionados por Facebook, escribiendo cada página recuperada en un archivo separado. Una vez que se encuentra una respuesta vacía, se detiene.
Con límites pequeños (por ejemplo, el valor predeterminado de 25), observo que la cantidad de resultados devueltos disminuye monóticamente a medida que atravieso los enlaces de paginación, lo que parece realmente extraño.
¿Alguna idea sobre qué podría estar causando este comportamiento y cómo evitarlo?
Si está buscando una lista de los nombres de todos y cada uno de los gustos / comentarios de una publicación en particular, creo que se encontrará con el límite de API (incluso con paginación).
Si solo está buscando un número agregado de me gusta, comentarios, acciones compartidas o clics en enlaces, querrá simplemente usar el parámetro summary = true proporcionado en el punto final de las publicaciones. Algo así como esto:
try:
endpoint = ''https://graph.facebook.com/v2.5/''+postid+''/comments?summary=true&access_token=''+apikey
response = requests.get(endpoint)
fb_data = response.json()
return fb_data
También puede recuperar todas las publicaciones de cualquier página en particular y sus puntos de datos de resumen:
{page_id}/posts?fields=message,likes.limit(1).summary(true)