2011-11-02 71 views
3

我想从Facebook页面(这是公开的)的所有专辑中获取所有照片(以及他们各自的评论,喜欢和标签)。虽然我知道如何使用Facebook API(或使用FQL)获取这些信息,但我的问题更多的是关于是否应该存储这些信息。使用Facebook API从页面的所有相册获取所有照片。缓存还是查询?

我有两个选择,因为我看到它:创建Facebook的API查询并显示结果相应有一个cron作业运行PHP脚本更新我的数据库每隔几分钟,并从数据库中提取信息。

Facebook确实有能力做real-time updates的信息;不过,截至目前,他们不支持照片或专辑,所以这显然不是一种选择。

为了让您知道我要处理的信息量,我要处理的页面大约包含40张专辑(并计数),大多数专辑最多包含200张图片。这是很多信息!如果任何人有API缓存API调用结果的经验,那么我会非常感谢您的意见。谢谢!

+0

注意:这将需要约1200请求,所有专辑,每张专辑,每张专辑的照片,评论,喜欢,照片对象,喜欢和评论等。这是可行的。 –

回答

2

cereallarceny

我的工作很相似,饲料相册和照片的网页和应用程序的东西。我只需要存储专辑和照片的ID,我可以从2个ID的图形API中实时获取所有其他内容。

一个大页面“可以说沃尔玛”https://shawnsspace.com/plugins/TimeLinegallery.php?pageid=walmart在大多数专辑中有大约350张专辑和大约20张照片。

我估计他们的整个画廊会超过3场演出,不包括评论和喜欢的数据,并调整大小的图像。

在我看来,为每个用户提供的信息比缓存所有信息要少得多,每天甚至每小时可以更改一次。


关于cron作业 - 您对每天api请求的应用程序有限制。调查所有相册和照片,以确定您的est:大小的画廊可能会超出该限制,并且Facebook将删除您的访问权限,直到您的mau限额重置或您获得书面许可超过限制。

如果超过或计划超过,以下任何阈值 请与我们联系,你可能会受到额外的条款:(> 500万MAU) 或(每天> 100M API调用)或(每天> 5000万次展示)。


在第二个注意:你可以打的电话,只是缓存什么也即=最后updated_date日期:你需要有一个最后updated_date的所有对象。这将大大减少您的传输时间和大小,但不会减少检查所需的电话数量。

+1

Shawn:我实际上并没有将图像本身存储在数据库中......只是指向Facebook中图像的链接。我怀疑他们的数据库是否超过3gigs,因为他们可能实际上并不存储图像,而是指向他们的链接。 – cereallarceny

+0

然后回答你的问题,**是**你应该存储ID和链接并每天或每周运行一个cron作业。您将看到性能增加,无需每次访问GraphAPI中的所有内容。 –

0

由于大部分内容可能会定期更改,如喜欢,标签和附加内容,因此存储它并不是一个好主意。有什么具体的理由需要存储它吗?从Facebook的CDN获取它也会更快。你可以做的是存储链接等,但我会实时下载实际的图片和连接。

相关问题