Facebook api: (# 4) Достигнут лимит заявки

С конца ноября мы нажимаем предел приложения в API Facebook. Мы загружаем пользовательские фотографии и выбираем 25 фотографий друзей → это делается, когда пользователь подписывается (мы создаем альбомы для пользователей).

Вышеуказанное действие ограничено, но оно не ограничивалось до конца ноября. Мы используем пакетные звонки, чтобы получать фотографии из альбомов - есть ли лучший способ получить эту информацию без ограничения?

Кстати, в соответствии с Facebook мы делаем 1M звонков в день, но, согласно нашему счету, мы делаем 180 тысяч звонков в день.

Извлечение только фотографий пользователей без фотографий друзей не является для нас решением.

Ответ 1

Ограничение API Facebook не документировано, но, по-видимому, это что-то вроде: 600 звонков за 600 секунд, на токен и на IP. Поскольку сайт ограничен, цитируя соответствующую часть:

После некоторого тестирования и обсуждения с командой платформы Facebook нет официального ограничения, о котором я знаю или могу найти в документации. Тем не менее, я нашел 600 звонков за 600 секунд, на токен и на IP-адрес, где они останавливают вас. Я также видел некоторые ограничения скорости на основе приложений, но не имеют никаких чисел.

Как правило, один вызов в секунду не должен ограничивать скорость. На первый взгляд это кажется очень ограничительным, но помните, что вы можете выполнять определенные вызовы и использовать API подписки для получения изменений.

Как вы можете получить доступ к графическому API на стороне клиента через Javascript SDK; Я думаю, что если вы отправите свой запрос на фотографии с клиента, вы не ударите никого application limit, как пользователь (каждый с уникальным идентификатором), который извлекает данные, а не ваш сервер приложений (уникальный идентификатор).

Это может означать огромный рефакторинг, если все, что вы делаете, проходит через сервер. Но это кажется лучшим решением, если у вас так много запросов (поскольку это даст вам дыхание вашему серверу).

В противном случае вы можете попробовать batch request, но я думаю, вы уже идете этим путем, если у вас большой трафик.


Если ничего из этого не будет сделано, в соответствии с Платформой Facebook > вам следует связаться с ними.

Если вы превысите или планируете превысить любой из следующих пороговых значений, пожалуйста, свяжитесь с нами, так как вам могут быть предоставлены дополнительные условия: ( > 5M MAU) или ( > 100M API в день) или ( > 50M показов в день).

Ответ 2

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

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

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

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

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

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

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

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

Ответ 3

Теперь ограничение на уровне приложения 200 звонков в час!

Вы можете посмотреть это изображение. enter image description here