Error de Facebook OAuth: límite de solicitud de solicitud alcanzado

Estoy intentando que funcione la página de ejemplo de Facebook (nuevamente) que puedes encontrar aquí . Me aparece el siguiente error:

Fatal error: Uncaught OAuthException: (#4) Application request limit reached thrown in C:\wamp\www\base_facebook.php on line 988 

Lo busqué en Google y el problema parece resolverse fácilmente siguiendo los pasos que se detallan aquí . Sin embargo, cuando voy a facebook.com/insights, mi aplicación no aparece en la lista (estoy conectado).

La parte más extraña es que cuando voy a mi aplicación a través de Desarrolladores> Mis aplicaciones, puedo ir a la página de mi aplicación y hacer clic en “Información”. Esto me lleva a la página de Insights para mi aplicación … pero la sección de diagnóstico no se encuentra por ningún lado. ¿Alguien puede ayudar?

La forma resumida de descubrir por qué sucede esto es:

  1. Inicie sesión en https://developers.facebook.com/apps/
  2. La última aplicación que ha editado ya debe estar cargada en el lado derecho; si no, encuentra tu aplicación en el lado izquierdo y haz clic en el nombre.
  3. Desplácese hacia abajo hasta que vea la sección de Insights y haga clic en See All .
  4. En el menú del lado izquierdo, selecciona API > Activity & Errors .

Los documentos “Graph API Rate Limiting” de Facebook dicen que un error con el código n #4 es un límite de tasa de nivel de aplicación , que es diferente de los límites de tasa de nivel de usuario . Aunque no proporciona ningún número exacto, describe su límite de tasa de aplicación como:

Esta limitación de velocidad se aplica globalmente a nivel de aplicación. Las llamadas a la API de anuncios están excluidas.

  • La limitación de velocidad ocurre en tiempo real en la ventana deslizante durante la última hora.
  • Las estadísticas se recostackn por el número de llamadas y consultas realizadas, el tiempo de CPU utilizado y la memoria utilizada para cada aplicación.
  • Existe un límite para cada recurso multiplicado por usuarios activos mensuales de una aplicación determinada.
  • Cuando la aplicación utiliza más de sus recursos permitidos, se produce el error.
  • Error, Código: 4, Mensaje: límite de solicitud de solicitud alcanzado

Los documentos también brindan recomendaciones para evitar los límites de velocidad. Para los límites de nivel de aplicación, son:

Recomendaciones:

  • Verifique el código de error (4) para confirmar el tipo de aceleración.
  • No haga una explosión de llamadas, distribuya las llamadas a lo largo del día.
  • Haga una búsqueda inteligente de datos (datos importantes, datos no duplicados, etc.).
    • En tiempo real, asegúrese de que las llamadas a la API estén estructuradas de manera tal que pueda leer las estadísticas para tantas publicaciones como sea posible, con un número mínimo de solicitudes.
    • No atrape a los usuarios dos veces (en el caso de que dos usuarios de la aplicación tengan un amigo específico en común)
    • No busques a todos los amigos del usuario para que se alimenten en una fila si la cantidad de amigos es mayor a 250. Separa las búsquedas en diferentes días. Como opción, busque primero la fuente de noticias del usuario de la aplicación (me / home) para detectar qué amigos son más importantes para el usuario de la aplicación. Luego, busca a esos amigos primero.
  • Considere limitar / filtrar las solicitudes utilizando los siguientes parámetros: “desde”, “hasta”, “límite”
  • Para las llamadas relacionadas con la página, use actualizaciones en tiempo real para suscribirse a los cambios en los datos.
  • La expansión de campo permite “unir” múltiples consultas de gráficos en una sola llamada.
  • Etags para verificar si la consulta de datos ha cambiado desde el último control.
  • Para los desarrolladores de administración de páginas que no tienen una base de usuarios masiva, solicite a los administradores de la página que acepten la aplicación para boost la cantidad de usuarios.

Finalmente, los documentos brindan los siguientes consejos informativos:

  • Las llamadas por lotes no reducirán el número de llamadas de API.
  • Hacer llamadas paralelas no reducirá el número de llamadas de API.

Si realiza una solicitud GET a uno de los puntos finales de API de gráficos de FB que no requiere access_token, eso no significa que no deba incluirlo en el parámetro de solicitud. Si lo hace como dice la documentación de FB, ya que no incluye access_token que en el lado del servidor FB, se registra en su máquina servidor. Por lo tanto, el límite (cualquier cantidad que sea exactamente) se puede alcanzar muy fácilmente. Sin embargo, si coloca el token de acceso de usuario en la solicitud (& access_token = XXXXXX), las solicitudes se registran en el usuario específico, por lo que casi nunca se alcanza el límite. Puede probarlo con un script simple que hace 1000 solicitudes con y sin acceso de usuario_token.

NOTA, el token de acceso a la aplicación FB no será suficiente, ya que tendrá el mismo problema: las solicitudes se registrarán en la aplicación access_token, esa situación es similar al realizar solicitudes sin access_token.