2009-12-02 118 views
3

我正在构建一个Facebook应用程序,它具有(作为其功能的一部分)显示用户的FB照片。在这个问题上的条款和条件对我来说有点模糊,所以我想我会问这里:Facebook应用程序:存储用户照片缩略图

有谁知道是否可以创建其FB照片的缩略图并将它们存储在我的服务器上?如果是这样(假设我拥有offline_access权限以及所有这些权限),我是否还必须每24小时刷新一次?

非常感谢!

+0

将照片存储在自己的机器上有没有明确的优势?无论如何,如果你将它们从API中拉出来,似乎使用该模式会更有意义。我个人对FB API一无所知,但我敢打赌,后台有很多事情正在进行,以优化频繁操作(如检索个人资料照片)的性能。 – 2009-12-02 17:21:05

+0

我们认为 - 真正的问题只是调整大小。正如你所说的,API非常适合于快速返回照片,人物等信息,但照片不会以我们需要的尺寸返回。我们宁愿不必在每次加载页面时调整大量内容。 – mikedory 2009-12-02 17:26:31

+0

这是有道理的。 :) – 2009-12-02 18:26:23

回答

6

总之,答案是

Facebook的Platform Policy状态:

你不能存储或缓存任何数据 您收到我们超过24 小时,除非这样做被 允许为脱机例外,或者该数据是 明确指定为可存储的 数据。

offline_access扩展权限实际上已经没有你是否能存储任何数据的影响,你可能混淆其与offline exception,这是如下:

离线例外:应用该 运行上由用户拥有的设备(例如 桌面或者膝上型计算机,移动设备 设备或者其他嵌入式设备) - 可以将从 接收的用户数据缓存仅超过24小时 当互联网连接是 不可用或 应用程序不可能运行。这样的数据可以存储在客户端设备上,但不是 远程服务器,并且不能使 可供开发人员使用。超过24小时的年龄较大的缓存 数据可以是 显示给代替 更新的数据的唯一直到更新的用户(或以其他方式 由应用程序使用的)是 可能的,并且在上一次更新之后超过14 天无的情况。

因此,这意味着你允许存储,除非你被offline exception覆盖,有下列数据字段:

User data you receive from Facebook that you can store indefinitely: 
uid     User ID 
nid     Primary network ID 
eid     Event ID 
gid     Group ID 
pid     Photo ID 
aid     Photo album ID 
flid     friend list ID 
listing_id    Marketplace listing ID 
page_id    Facebook Page ID 
proxied_email   Placeholder email addresses for your users 
notes_count   Total number of notes written by the user 
profile_update_time Time that the user's profile was last updated 
+0

这就是我的想法 - 非常感谢! – mikedory 2009-12-14 17:35:57

+0

是制作一个每天连接到fb的cronjob脚本并再次获取用户数据的解决方案?如果是这样,我该怎么做? – 2010-03-27 08:57:35

+0

您可以为已授予您offline_access的用户执行此操作,或者您可以在用户访问该应用程序时更新用户信息。您可以存储上次更新信息的时间,并在特定时间间隔内执行此操作,例如,如果自上次更新后超过24小时,则更新。 – defines 2010-03-30 20:16:22

1

你不应该需要复制/调整用户的照片,只需在Facebook上缓存照片的网址,然后使用浏览器/ css将其尺寸调整为您需要的尺寸即可。使用FQL查询照片表以获取照片的全尺寸版本(src_big)的URL。或者查询已经创建的较小尺寸的Facebook。 这是关于如何查询照片url url信息的网址: http://wiki.developers.facebook.com/index.php/Photo_%28FQL%29

+0

这将工作得很好(而且是我们最终做的) - 只是希望我们可以优化一点。感谢寿! – mikedory 2009-12-14 17:36:46

相关问题