2012-05-02 15 views
8

Tengo una pregunta sobre la forma en que Facebook limita sus llamadas de API.Límite de publicación de Facebook de 5000

Hacia la parte inferior de este artículo: http://developers.facebook.com/blog/post/478/ facebook dice:

Además de los límites mencionados en la documentación de cada una de las mesas y las conexiones de la lista anterior, es útil saber que el número máximo de Los resultados que obtendremos antes de ejecutar las comprobaciones de visibilidad son 5,000.

Me pregunto cómo sería una página a través de datos públicos como este. Por ejemplo, tome Shakira le suelta muchos, muchos gustos en cada foto ella carga, esta llamada a la API:

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=0&__after_id=100002349968919

termina parando en 5000 gustos.

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=5000&__after_id=100000881924617

Un punto interesante es que estos datos son todos los públicos, no tengo que estar conectado a Facebook para verlo. Sé que hay políticas de privacidad en cómo usa los datos, esa no es mi pregunta. Si los datos son públicos, que son estos datos, ¿por qué no podemos obtenerlo todo, y si podemos, cómo?

Las principales preguntas son:

  1. puede obtener más de 5000 resultados para una llamada a la API específica, como en la de arriba?

  2. ¿Son los últimos 5000 me gusta? Entonces, si comenzaste a recopilar datos en esta publicación de inmediato y luego volviste cada 10 minutos para buscar nuevos "me gusta", ¿podrías obtener todos los datos con este método para evitar el límite de 5000?

  3. ¿Es un límite en las llamadas API, o solo en el número de resultados que envían un usuario, o en la cantidad de resultados que envían para una determinada publicación, etc.?

  4. ¿Esto se aplica a los mensajes, etiquetados y los comentarios y como paginación?

Sé que esta pregunta es un poco abierta, pero he buscado por todas partes una respuesta y no está bien documentada. Cualquier ayuda sería excelente, y creo que mucha gente puede referirse a esta información en el futuro.

ACTUALIZACIÓN:

Cuando se ejecuta esta llamada a la API:

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=4964&__after_id=100000881924617

Se obtiene un resultado posterior, y por lo tanto alcanza este límite (bueno, al menos cerca de ella). Alguien sugirió usar FQL y eso podría devolver más. Pero intenté hacer lo mismo en PHP con FQL y obtuve solo 1 registro.

$select = urlencode("SELECT user_id, object_id, post_id FROM like WHERE post_id='5027904559_10150854808869560' LIMIT 1000 OFFSET 4964"); 
     $fql_query_url = 'https://graph.facebook.com/fql?q=' . $select; 
     $fql_query_result = file_get_contents($fql_query_url); 
     $fql_query_obj = json_decode($fql_query_result, true); 

Por lo tanto, hasta el momento, la única respuesta es 'no', que está siempre limitado a 5000 resultados.Y no creo/sé si un access_token específico con algún permiso específico ayuda.

Una actualización más, cuando voy a la página de Shakira y hago clic en 'x cantidad de personas así' y empiezo a desplazarme hacia abajo en la lista, también alcanzo un límite. Entonces, no solo Facebook limita la API y el FQL regresa, sino que están limitando sus propias páginas.

Me interesaría saber si alguien sabe por qué? Solo tienen 5k en caché a la vez, y no podrían manejar la báscula si las personas llegaran a la base de datos con tantas solicitudes? Solo una suposición.

+0

Me sorprende incluso que los datos estén disponibles públicamente, para ser honesto. Por lo menos, espero que esto solo esté disponible para los desarrolladores de aplicaciones registradas, e incluso solo si las preferencias de privacidad del usuario están configuradas para permitirlo a ese desarrollador específico. – halfer

+0

Sí, no todos los datos son públicos, pero las páginas de fans sí tienen algunos datos públicos. Como Shakira. – chantheman

+0

Hola, @chantheman, ¿resolviste esto/encuentra una forma alternativa? –

Respuesta

4

No hay forma de obtener más de los últimos 5000 objetos, lamentablemente.

A menos que, como dijiste, la mantuvieras desde un momento en que había MENOS de 5000, y las almacenaras. :)

Puede o no ser intencional (tal vez están tratando de dejar que las noticias viejas mueran y no se encuentren fácilmente), o, puede coincidir con la cantidad de amigos que está permitido en Facebook, 5000.

+0

Gracias por la respuesta. Solo para aclarar, cuando Shakira tiene 400,000 Me gusta en una imagen, solo puedo obtener los últimos 5000. Periodo. No puedo usar el desplazamiento para ir de regreso a 5k de alguna manera (lo intenté y no pude hacerlo funcionar). ¿Qué sucede si tengo algún permiso específico del administrador de la página? ¿Podría obtener más entonces? – chantheman

+0

No. Facebook es, como muchos sitios, no creado a partir de su API, lo que genera problemas como este. Sin embargo, si REALMENTE necesita los 400,000 Me gusta, puede raspar la página. Como dije, esta es probablemente una limitación intencional. – DanRedux

+0

Eso es interesante. Parece limitar mucho desarrollo de aplicaciones. Estoy interesado en ver si alguien ha reparado en esto, pero solo veo dos soluciones: 1. Cree un raspador/rastreador como usted dijo, o 2. recopile datos todo el tiempo, almacénelos y almacene los últimos recogidos, para que pueda comienza allí cuando recoges cada vez. Quiero ver si alguien más ha tenido este problema. Gracias nuevamente por la informacion. – chantheman

Cuestiones relacionadas