Facebook应用程序:存储用户照片缩略图

Facebook应用程序:存储用户照片缩略图,facebook,Facebook,我正在构建一个Facebook应用程序,它(作为其功能的一部分)可以显示用户的FB照片。这个问题的条款和条件对我来说有点模糊,所以我想我应该在这里问一下: 有人知道创建他们的FB照片的缩略图并将其存储在我的服务器上是否可以接受吗?如果是这样(前提是我有离线访问权限等等),我是否也必须每24小时刷新一次 多谢 简而言之,答案是否定的 Facebook的状态: 不得存储或缓存任何数据 您收到我们超过24天的订单 小时,除非法律允许这样做 脱机异常,或该数据为 显式指定为可存储的 数据 脱机访问扩展权

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

有人知道创建他们的FB照片的缩略图并将其存储在我的服务器上是否可以接受吗?如果是这样(前提是我有离线访问权限等等),我是否也必须每24小时刷新一次


多谢

简而言之,答案是否定的

Facebook的状态:

不得存储或缓存任何数据 您收到我们超过24天的订单 小时,除非法律允许这样做 脱机异常,或该数据为 显式指定为可存储的 数据

脱机访问
扩展权限实际上对您是否可以存储任何数据没有影响,您可能将其与
脱机异常
混淆,如下所示:

脱机异常:应用程序 在和控制的设备上运行 由用户拥有--例如 台式或笔记本电脑,移动 设备或其他嵌入式设备-- 可以缓存从接收到的用户数据 Facebook仅24小时以上 当Internet连接中断时 不可用或不可能 要运行的应用程序。这样的数据可以 必须存储在客户端设备上,但不能 远程服务器,并且无法创建 可供开发人员使用。缓存 可以删除超过24小时的数据 向用户显示(或以其他方式显示) 由应用程序使用)代替 仅在更新完成之前更新数据 可能,而且在任何情况下都不能超过14 上次更新后的天

因此,这意味着您可以存储以下数据字段,除非您被
脱机异常所覆盖:

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

您不需要复制/调整用户照片的大小,只需在Facebook上缓存照片的URL,然后使用浏览器/css将其大小调整为所需的大小。使用FQL查询照片表,以获取照片的完整大小版本(src_big)的URL。或者查询已经创建的较小规模的Facebook。 这是有关如何查询照片url信息的url:

将照片存储在自己的机器上有什么明显的优势吗?如果您从API中提取它们,那么使用该模式似乎更有意义。我个人对FB API一无所知,但我敢打赌,在频繁的操作(如检索个人资料照片)中,会有大量的后台工作来优化性能。我们考虑到了这一点——真正的问题只是调整大小。正如您所说,API在快速返回照片、人物等信息方面非常出色,但返回的照片的大小并不一定对我们有帮助。我们不希望在每次加载页面时都要调整一大堆内容的大小。你可以尝试css调整大小——它看起来不错,而且不需要任何额外的存储。我认为这可能是我们必须要做的。我希望通过大小不一致的图像来避免动态调整大小的开销,但这可能是唯一的犹太解决方案。谢谢你的想法!这将很好地工作(这就是我们最终所做的)-我们只是希望我们可以优化一点超越这一点。谢谢你!解决方案是制作每天连接到fb的cronjob脚本,并再次获取用户数据吗?如果是soo,我该怎么做?您可以为授予您脱机访问权限的用户这样做,或者您可以在用户访问应用程序时更新用户信息。您可以存储上次更新信息的时间,并在特定的时间间隔内执行此操作,即,如果自上次更新以来已超过24小时,则进行更新。