Facebook graph api 绕过每ip限制检索配置文件图片的方法?

Facebook graph api 绕过每ip限制检索配置文件图片的方法?,facebook-graph-api,limit,Facebook Graph Api,Limit,我的应用下载所有用户的好友图片 所有请求都属于此类: https://graph.facebook.com/<friend id>/picture?type=small 实际上,我发现防止这种情况发生的唯一方法是(手动)更改服务器ip。 没有更好的方法了?如果在线应用需要更好的方法不下载这些图像,而是使用在线版本,那么这样做有两个原因: 用户经常更改图片,是否需要更新版本 Facebook的服务器可能比你和朋友的图片快,这些图片可能缓存在你用户的浏览器中 更新: 由于您达到的限

我的应用下载所有用户的好友图片

所有请求都属于此类:

https://graph.facebook.com/<friend id>/picture?type=small
实际上,我发现防止这种情况发生的唯一方法是(手动)更改服务器ip。
没有更好的方法了?

如果在线应用需要更好的方法不下载这些图像,而是使用在线版本,那么这样做有两个原因:

  • 用户经常更改图片,是否需要更新版本
  • Facebook的服务器可能比你和朋友的图片快,这些图片可能缓存在你用户的浏览器中
更新:
由于您达到的限制是调用限制,而不是图像检索,我刚才想到的另一个解决方案是使用in-Graph API的连接并在字段中指定图片,eq:
https://graph.facebook.com/me/friends?fields=picture
,这将返回朋友图片的直接URL-s,因此您只需拨打一次电话即可获取所有需要的信息,以便为每个用户下载图片…

如果在线应用程序需要更好的方式不下载这些图片,而是使用在线版本,那么这样做有两个原因:

  • 用户经常更改图片,是否需要更新版本
  • Facebook的服务器可能比你和朋友的图片快,这些图片可能缓存在你用户的浏览器中
更新: 由于您达到的限制是调用限制,而不是图像检索,我刚才想到的另一个解决方案是使用in-Graph API的连接并在字段中指定图片,eq:
https://graph.facebook.com/me/friends?fields=picture
,这将返回朋友图片的直接URL-s,因此您只需拨打一次电话即可获得所有需要的信息,以便为每个用户下载图片…

有关记录:

该限制仅与Graph Api相关,而
Graph.facebook.com//picture
url是一个返回重定向的Graph Api调用

因此,为了避免每日限制,只需从FQL获取所有图像url,如:

SELECT uid, pic_small, pic_big, pic, pic_square FROM user WHERE uid = me() or IN (SELECT uid2 FROM friend WHERE uid1=me())
下面是图像的直接URL,例如:

因此,不要存储它们,因为它们会不断变化。

对于记录:

该限制仅与Graph Api相关,而
Graph.facebook.com//picture
url是一个返回重定向的Graph Api调用

因此,为了避免每日限制,只需从FQL获取所有图像url,如:

SELECT uid, pic_small, pic_big, pic, pic_square FROM user WHERE uid = me() or IN (SELECT uid2 FROM friend WHERE uid1=me())
下面是图像的直接URL,例如:


所以不要存储它们,因为它们会不断变化。

遗憾的是,我只下载一次图片,然后将其缓存到服务器端(我所做的是创建所有图片的合成并将其保存为另一个图片),但是我每小时有约1000个用户,亚马逊Ec2上有3个服务器,因此每个IP有300个用户,每个IP有约300个朋友,ie每台服务器每小时90000个映像然后可能分配新的IP或仅用于下载映像的派生实例(spot实例可能会更好,也可能不会更好)不应该太难,eq:您可以从运行实例本身分配新的弹性IP,或者,您可以使用使用ec2实例元数据的简单下载脚本来发现应该下载的内容。这可以通过命令行工具或API来实现。弹性ip的问题是,我通常会得到相同的地址(至少在eu west),并且我的ip限制为5个。还有几个原因迫使我使用大型实例(至少在接下来的几天)。出于这个原因,我对软件解决方案更感兴趣,例如,以不同的方式获取图片完整的url。考虑到3天前我启动了这个应用程序,我已经为每天10K的用户服务了。遗憾的是,我只下载了一次图片,然后我缓存它的服务器端(我所做的,是创建所有图片的组合并保存它作为另一个图像),但是我有1000个用户每小时,3个服务器在Amazon EC2上,所以每个IP有300个用户,每个服务器有大约300个朋友,即每小时90000个映像,那么分配新的IP或仅用于下载映像的衍生实例(spot实例可能会更好,也可能不会更好)应该不会太难,eq:您可以从运行实例本身分配新的弹性IP,或者,您可以使用使用ec2实例元数据的简单下载脚本来发现应该下载的内容。这可以通过命令行工具或API来实现。弹性ip的问题是,我通常会得到相同的地址(至少在eu west),并且我的ip限制为5个。还有几个原因迫使我使用大型实例(至少在接下来的几天)。出于这个原因,我对软件解决方案更感兴趣,例如,以不同的方式获取图片完整的url。考虑到我3天前启动了这个应用程序,我已经为每天10K的用户服务了。我需要存储图像服务器端,以创建另一个图像作为每个朋友图像的组成。我每个IP每小时下载大约90000张图片。我需要将图片存储在服务器端,以创建另一张图片作为每个好友图片的合成。我每小时下载大约90000张图片。