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]()