2009-12-02 117 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

相關問題