Ошибка OAuth Facebook: достигнут предел запроса приложения

Я пытаюсь заставить страницу примера facebook работать (снова), которую вы можете найти здесь . Я получаю следующую ошибку:

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

Я искал это, и проблема, по-видимому, легко устраняется с помощью описанных здесь шагов. Однако, когда я перехожу на facebook.com/insights, мое приложение не указано (я вошел в систему).

Более странная часть заключается в том, что когда я перехожу в свое приложение через Developers> My apps, я могу перейти на страницу своего приложения и нажать «Insights». Это приводит меня к странице Insights для моего приложения … но диагностический раздел нигде не найден. Может ли кто-нибудь помочь?

Описанный способ выяснить, почему это происходит:

  1. Войдите в https://developers.facebook.com/apps/
  2. Последнее редактируемое приложение уже должно быть загружено с правой стороны; если нет, найдите свое приложение в левой части и щелкните имя.
  3. Прокрутите страницу вниз до тех пор, пока вы не увидите раздел Insights и нажмите « See All .
  4. В меню слева выберите « API > Activity & Errors .

«Документ« Ограничение скорости графика API »в Facebook говорит, что ошибка с кодом #4 является пределом скорости на уровне приложения , который отличается от ограничений скорости пользовательского уровня . Хотя он не дает никаких точных цифр, он описывает их предельный уровень на уровне приложения:

Это ограничение скорости применяется в глобальном масштабе на уровне приложения. Объявления api calls исключены.

  • Ограничение скорости происходит в реальном времени на скользящем окне за последний час.
  • Статистика собрана для количества вызовов и запросов, времени в процессоре, памяти, используемой для каждого приложения.
  • Для каждого ресурса есть предел, умноженный на ежемесячных активных пользователей данного приложения.
  • Когда приложение использует больше, чем разрешенные ресурсы, возникает ошибка.
  • Ошибка, код: 4, Сообщение: достигнут предел запроса приложения

Документы также дают рекомендации по недопущению ограничений по скорости. Для пределов уровня приложения они:

Рекомендации:

  • Проверьте код ошибки (4), чтобы подтвердить тип дросселирования.
  • Не делайте всплеск звонков, разбрасывайте звонки в течение дня.
  • Сделайте интеллектуальную выборку данных (важные данные, не дублированные данные и т. Д.).
    • В режиме реального времени проследите, чтобы вызовы API были структурированы таким образом, чтобы вы могли читать сведения для максимально возможного количества страниц, с минимальным количеством запросов.
    • Не извлекайте канал пользователей дважды (в случае, если два пользователя приложения имеют общий общий адрес)
    • Не загружайте все друзья друзей в строку, если количество друзей больше 250. Отделите выборки в разные дни. В качестве опции выберите сначала фид новостей пользователя (me / home), чтобы определить, какие друзья важнее для пользователя приложения. Затем сначала отправьте их друзьям.
  • Подумайте о том, чтобы ограничить / отфильтровать запросы, используя следующие параметры: «с», «до», «лимит»,
  • Для вызовов, связанных с страницей, используются обновления в реальном времени для подписки на изменения данных.
  • Расширение поля позволяет «присоединить» несколько графических запросов к одному вызову.
  • Etags, чтобы проверить, изменился ли запрос данных с момента последней проверки.
  • Для разработчиков веб-страниц, у которых нет массивной базы пользователей, администраторы этой страницы должны принять приложение, чтобы увеличить количество пользователей.

Наконец, в документах приводятся следующие информационные советы:

  • Групповые вызовы не уменьшают количество вызовов api.
  • Выполнение параллельных вызовов не уменьшит количество вызовов api.

Если вы сделаете запрос GET одной из конечных точек API графического интерфейса FB, для которой не требуется access_token, это не означает, что вы не должны включать его в параметр запроса. Если вы говорите, как говорится в документации FB, так как не включайте access_token, а не на стороне сервера FB, он регистрируется на вашем сервере. Таким образом, ограничение (независимо от его количества) может быть достигнуто очень легко. Если вы, однако, поместите токен доступа пользователя в запрос (& access_token = XXXXXX), тогда запросы регистрируются у конкретного пользователя, поэтому предел почти никогда не будет достигнут. Вы можете протестировать его с помощью простого скрипта, который делает 1000 запросов с и без пользователя access_token.

ПРИМЕЧАНИЕ. Ток доступа к приложениям FB будет недостаточным, так как вы столкнетесь с одной и той же проблемой: запросы будут зарегистрированы в приложении access_token, так как ситуация аналогична запросу без доступа.