2011-11-02 70 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獲取它也會更快。你可以做的是存儲鏈接等,但我會實時下載實際的圖片和連接。

相關問題