2012-03-05 49 views
0

我正在開發一個使用mongoDB作爲數據庫的node.js應用程序。我正在開發相當簡單的Facebook集成,除了將用戶身份驗證外包給FB之外,我還想檢索用戶的FB朋友列表,以便他們稍後可以選擇通過應用程序。保持用戶Facebook信息更新的理想方式?

雖然,我無法弄清楚究竟是最好的解決這個問題的方法。很顯然,這些信息經常變化(新朋友等) - 所以我不能簡單地在用戶第一次登錄時將朋友保存到我的數據庫中,然後忘記它。同時,從FB每次登錄時獲取用戶的朋友列表似乎都不切實際。另一種選擇是根本不保存好友列表,並且只需每次需要時向Facebook發送GET請求 - 這可能是但效率相當低,尤其是如果我開發更多與FB功能的集成。最後,我讀了關於Facebook的實時訂閱API - https://developers.facebook.com/docs/reference/api/realtime/。這將允許我即時更新好友列表 - 但可能會爲我開發更多的工作。

我認爲這是一個相當普遍的挑戰,所以我想知道其他人如何解決這個問題,以及在獨立應用程序中是否有一種「最佳實踐」管理FB信息的方式?

回答

0

這實際上取決於你將使用哪些數據。你可以做兩件事情:

  • 獲取並在必要時緩存好友列表中,即將到期的幾分鐘/小時後
  • 得到一個腳本輪詢每小時一次左右,以保持更新所有用戶的好友列表
+0

有道理。我決定在現在需要時提取朋友列表(使用一個UI元素,在GET時顯示加載狀態)。我想在我開始添加更深入的FB集成之後,我會嘗試提出一種在數據庫中存儲/更新數據的更好方法。 – BlueMoon 2012-03-08 22:38:50

0

類似於Facebook小工具的概念能否提供幫助。在'僅查看'模式下,它可以顯示緩存在數據庫中的好友列表,因爲小部件區域總是顯示完整好友列表的子集。在進行更新(提名朋友或類似的事情)的情況下,您應該查詢Facebook以確保數據是最新的。