¿Cuál es el límite de llamadas de la API Graph de Facebook?

Respuestas:

58

La mejor respuesta a esta pregunta de otro foro , de Ash Rust en 2010:

"Después de algunas pruebas y discusiones con el equipo de la plataforma de Facebook, no hay ningún límite oficial que conozca o pueda encontrar en la documentación. Sin embargo, he encontrado que 600 llamadas por 600 segundos, por token y por IP son aproximadamente Te detienen. También he visto algunas limitaciones de velocidad basadas en aplicaciones, pero no tengo números.

Como regla general, una llamada por segundo no debe tener una tarifa limitada. En la superficie, esto parece muy restrictivo, pero recuerde que puede agrupar ciertas llamadas y usar la API de suscripción para obtener cambios ".


La información anterior ahora está obsoleta a partir de octubre de 2015. Ahora son 200 llamadas a la API por usuario en cualquier ventana de 60 minutos según https://developers.facebook.com/docs/graph-api/advanced/rate-limiting

Zain Khan
fuente
12
@mangobug Por Token y por IP significa ... ¿qué exactamente? ¿Significa que puedo duplicar el número de llamadas si uso el mismo token en 2 IP diferentes? ¿Puedo duplicar el número de llamadas si tengo 2 tokens de acceso, que aún se originan en la misma IP?
Henley Chiu
2
@mangobug: Creo que el último comentario / pregunta de Henley Chiu es bastante crucial aquí :)
Erik Kaplun
5
"pero recuerde que puede agrupar determinadas llamadas" Facebook aclara que esto no reducirá la cantidad de llamadas API efectivas hacia su límite: "Las llamadas por lotes no reducirán la cantidad de llamadas API". developers.facebook.com/docs/marketing-api/…
heyitsbmo
3
Esto ya no es válido, vea la respuesta del usuario uno> 200 llamadas API por usuario en cualquier ventana de 60 minutos
Brandon Romano
1
¿Cómo consigo más usuarios para mi aplicación? ¿Qué es un usuario de la aplicación? ¿Dónde muestra cuántos tengo?
Farzher
48

Ahora es oficial :

Cada aplicación recibe una asignación de 200 llamadas API por usuario en cualquier ventana de 60 minutos .

De la documentación de Facebook al 7 de octubre de 2015 , así es como funciona la limitación de tasas en la API Graph:

  • La limitación de la tasa se realiza en su AppId de Facebook. Si su aplicación alcanza un límite de velocidad, todas las llamadas realizadas para esa aplicación estarán limitadas no solo por usuario.
  • La limitación de la tasa se calcula tomando la cantidad de usuarios que tuvo su aplicación el día anterior y agregando los nuevos inicios de sesión de hoy. Esto le da un número base de usuarios que tiene su aplicación.

Por ejemplo, si su aplicación tuviera 10 usuarios ayer y 5 nuevos inicios de sesión hoy, eso le daría una base de 15 usuarios. Esto significa que su aplicación puede realizar ((10 + 5) * 200) = 3000 llamadas API en cualquier ventana de 60 minutos.

Más información aquí: https://developers.facebook.com/docs/graph-api/advanced/rate-limiting

- Actualización al 12 de abril de 2016 -

Facebook ahora tiene un Panel de Límite de Tasas , que es mucho más fácil de ver si se excede el límite de tasas de su aplicación. Se parece a esto:

ingrese la descripción de la imagen aquí

Alfeu
fuente
AFAIK, el límite solo se aplica a aplicaciones con Graph API versión 2.5 y superior. Las aplicaciones más antiguas aún no tienen este límite.
Marius
¿Es posible que si llegamos al límite, facebook nos devuelva el error Error: read ECONNRESET???
Konstantinos Natsios
El límite real no es por usuario, es un promedio de usuarios activos diarios: "Su aplicación puede realizar 200 llamadas por hora por usuario en total. Por ejemplo, si su aplicación tiene 100 usuarios, esto significa que su aplicación puede generar 20000 llamadas. Este no es un límite por usuario, por lo que un usuario podría realizar 19.000 de esas llamadas y otro podría realizar 1.000. Este límite se calcula en función del número de llamadas realizadas en la hora anterior ".
Jason Goemaat
2
Sería mucho más fácil si regresaran estimatedCallsLeftForThisHour: 1234después de cada llamada.
agosto
¡Respuesta bonita y precisa!
Alex Pliutau
20

Según las políticas de desarrollo de Facebook "I. Características y funcionalidad", los únicos límites son:

(> 5 millones de MAU) o (> 100 millones de llamadas a la API por día) o (> 50 millones de impresiones por día).

(Mau significa usuarios mensuales)

No dice qué harán después de superar los límites ...

Hoy me he topado con esta limitación:

Las llamadas a mailbox_fql han superado la tasa de 300 llamadas por 600 segundos.

En general, cada tabla tiene un conjunto diferente de límites, en la mayoría de los casos fql no devolverá más de 30 objetos por fql. También me parece que puedes exceder los límites a una tabla y al mismo tiempo puedes acceder a diferentes tablas, la pregunta es si la api está bloqueada (luego de exceder el límite) para todo el usuario o solo para el usuario que tiene excedió los límites ... De todos modos, después de exceder el límite, debe esperar unos 10 minutos, de lo que está bien.

Entonces, técnicamente hablando, puede obtener como máximo 300 * 30 objetos por 10 minutos en la tabla mailbox_fql.

Visgean Skeloru
fuente
Esos son los umbrales por encima de los cuales debe existir un contrato, no los límites técnicos estrictos, que se encuentran en la respuesta de
Mangobug
no realmente "Las llamadas a mailbox_fql han superado la tasa de 300 llamadas por 600 segundos". significa que es un límite estricto que se hizo cumplir en la vida real. eso también sugeriría que hay un límite diferente para diferentes tablas. (Cual es verdad).
Visgean Skeloru
6

De la documentación de facebook

Limitación de frecuencia de nivel de usuario

Esta limitación de frecuencia se aplica a nivel de usuario para todas las llamadas a la API, excepto para las API de anuncios.

Las limitaciones de tarifas ocurren en tiempo real en la ventana deslizante. A cada llamada se le asigna una puntuación. Hay una puntuación máxima de n. El usuario acumula una puntuación a lo largo del tiempo en función de las llamadas realizadas. Cuando se alcanza la puntuación máxima, se produce el error de limitación. Error, código: 17, mensaje: límite de solicitud de usuario alcanzado

Límite de tasa de nivel de aplicación

Esta limitación de velocidad se aplica globalmente a nivel de aplicación. Se excluyen las llamadas a la API de anuncios.

La limitación de velocidad ocurre en tiempo real en la ventana deslizante durante la última hora. Las estadísticas se recopilan por la cantidad de llamadas y consultas realizadas, el tiempo de CPU empleado y la memoria utilizada para cada aplicación. Hay un límite para cada recurso multiplicado por los usuarios activos mensuales de una aplicación determinada. Cuando la aplicación usa más recursos de los permitidos, se produce un error. Error, código: 4, mensaje: límite de solicitud de aplicación alcanzado

consulte esta documentación https://developers.facebook.com/docs/reference/ads-api/api-rate-limiting/

Ansen E Anand
fuente
¿Dónde hay un ejemplo de cómo puede hacer llamadas a nivel de usuario y llamadas a nivel de aplicación? Todo pasa por la identificación de la aplicación independientemente de cuál sería un límite de nivel de aplicación. No son muy buenos con la documentación sobre esto.
Josh Bedo
El enlace a la documentación es incorrecto. El correcto es developers.facebook.com/docs/graph-api/advanced/rate-limiting
Paiboon Panusbordee
Esta respuesta es sobre la API de marketing, no sobre la API Graph como pidió el OP.
John Washam
3

Según los documentos de FB, cada elemento de un lote cuenta como una llamada separada.

Actualmente limitamos la cantidad de solicitudes que pueden estar en un lote a 50, pero cada llamada dentro del lote se cuenta por separado a los efectos de calcular los límites de llamadas a la API y los límites de recursos. Por ejemplo, un lote de 10 llamadas a la API contará como 10 llamadas y cada llamada dentro del lote contribuye a los límites de recursos de la CPU de la misma manera.

Compruebe esto: https://developers.facebook.com/docs/graph-api/making-multiple-requests https://developers.facebook.com/docs/marketing-api/api-rate-limiting

Mujibur
fuente