Способ обойти ограничение по IP-адресу извлечения изображения профиля? - PullRequest
0 голосов
/ 14 октября 2011

Мое приложение скачать все фотографии друзей пользователя.

Все запросы такого типа:

https://graph.facebook.com/<friend id>/picture?type=small

Но после достижения определенного предела вместо картинки я получаю:

{"error""message":"(#4) Application request limit reached","type":"OAuthException"}}

На самом деле,Единственный способ предотвратить это - изменить ip сервера (вручную).Нет лучшего способа?

Ответы [ 2 ]

3 голосов
/ 19 октября 2011

Для записи:

Ограничение относится только к Graph Api , а URL-адрес graph.facebook.com/<user>/picture представляет собой вызов API api, который возвращает перенаправление.

Итак, чтобы избежать дневного лимита, просто извлеките все URL-адреса изображений из FQL, например:

SELECT uid, pic_small, pic_big, pic, pic_square FROM user WHERE uid = me() or IN (SELECT uid2 FROM friend WHERE uid1=me())

теперь это прямые ссылки на изображения, например:

http://profile.ak.fbcdn.net/hprofile-ak-snc4/275716_1546085527_622218197_q.jpg

, поэтому не храните их, так как они постоянно меняются.

1 голос
/ 15 октября 2011

Если для онлайн-приложения требуется лучший способ не загружать эти изображения, а использовать онлайн-версию, для этого есть несколько причин:

  • Пользователи меняют картинки (некоторые часто), вам нужна обновленная версия?
  • Серверы Facebook, вероятно, быстрее, чем ваши и ваши друзья, вероятно, кэшируются в браузере вашего пользователя.

Обновление: Поскольку предел, который вы достигаете, составляет График API предел вызова, а не поиск изображений, другое решение, которое приходит мне в голову сейчас, - это использование friends соединения user в Graph API и указав изображение в полях аргумент, например: https://graph.facebook.com/me/friends?fields=picture, это вернет прямые URL-адреса для фотографий друзей, поэтому вы можете сделать только один вызов, чтобы получить всю необходимую информацию для загрузки картинки для каждого пользователя ...

...