绕过per-ip limit检索个人资料图片的方法?

时间:2011-10-14 18:26:02

标签: facebook-graph-api limit

我的应用程序下载所有用户的朋友图片。

所有请求都属于这种类型:

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

但是,在达到某个限制后,而不是我得到的图片:

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

实际上,我发现阻止这种情况的唯一方法是更改​​服务器IP(手动)。 有没有更好的方法?

2 个答案:

答案 0 :(得分:3)

记录:

此限制与图表Api 相关,graph.facebook.com/<user>/picture网址是返回重定向的图表API调用。

因此,为了避免每日限制,只需从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 :(得分:1)

如果在线应用程序需要更好的方式来下载这些图像,但使用在线版本,则有以下几个原因:

  • 用户更换图片(有些经常更换),您需要更新版本吗?
  • Facebook的服务器可能比您的服务器更快,朋友的照片可能会缓存在您用户的浏览器中。

<强>更新 由于限制是Graph API来电限制,而不是图像检索,我现在想到的另一个解决方案是在图谱API中使用friends user连接并指定图片 字段参数,例如:https://graph.facebook.com/me/friends?fields=picture,这将返回朋友图片的直接网址,这样您只需拨打一个电话即可获取所有需要的信息以下载图片每个用户......