2012-09-04 108 views
1

看着明亮的網站,我想弄清楚他們如何實現他們的最新活動窗格。基本上,在他們的網站上用Facebook登錄給我所有的朋友工作最近的變化,按日期排序。看看這裏,看看我的意思是:Facebook API朋友工作和教育最近的變化

bright activity

這就是我在這個時候這樣做的遠:

  • 使用friends_work_history許可和檢索像/me/friends?fields=name,work與圖形工作領域API。雖然這給了我朋友的工作歷史以及他們現在的位置,但我仍然無法獲得他們當前工作僱主的最新變化日期。

  • 展望feed對象(也使用圖形API),以及在stream對象(這次使用FQL)我的朋友,看看我是否可以過濾工作的變化。仍然沒有運氣。我找不到與他們的工作有關的任何故事或活動。

現在,糾正我,如果我錯了,但在我看來,這是不可能獲得這樣的朋友工作變化與日期。在最好的世界中,我們希望實現的是,當用戶第一次使用我們的網站並使用Facebook登錄時,我們想向他們展示「最新活動」,如您從Bright的圖像中看到的那樣。

如果真的不可能,我們會忘記看到朋友中最新作品更新的歷史,我們將集中精力抓住現在的「快照」,並從那裏開展工作。我們可以嘗試兩種:

  • 使用我們自己的跟蹤系統,該系統將基本由白天集中在一段時間Facebook的圖形API,看看我們是否能找到用戶的朋友的工作歷史上的任何變化。

OR

無論如何,也許有人能夠解決這個問題?提前致謝!

回答

0

你應該可以通過使用FQL得到這個結果。我找不到最近換了工作的朋友,所以我無法驗證這應該是什麼。

使用這樣的事情:

SELECT post_id, message, type, attribution, description,description_tags FROM stream 
    WHERE source_id IN (SELECT uid1 FROM friend WHERE uid2 = me()) AND 
    strpos(description,"added a job") > 0 

應該讓你的帖子。我的猜測是這些值具有唯一的type值,您可以在其中更高效地過濾這些值。

不要忘記,stream表蹣跚只會返回過去30天的價值的職位。您需要執行多個查詢以獲取任何重要的歷史記錄。

+0

感謝您的回答。經過一些FQL測試後,我發現「僱主」不是合適的詞(我只能在明亮的網站上使用)。您應該使用「添加作業」。此外,我發現使用'WHERE source_id IN(SELECT uid1 FROM friend WHERE uid2 = me())'進行查詢只能在最近幾天工作(至少,我發現一位朋友在4月份使用該查詢更改了工作) 。我反而嘗試了像'WHERE source_id = [some_friend_uid]'這樣的工作。 – plgrenier

+0

我現在想知道的是,如果例如我有500個朋友,我想這將是矯枉過正手動做500個查詢,對吧?有什麼我在這裏失蹤? – plgrenier

+0

根據文檔,'stream'表限於返回50個結果中的較大者或最後30日內的數據。所以你*應該*能夠通過在你的查詢中添加'AND created_time <2012-04-30'來獲得朋友的數據。您只需要12個查詢(或一個多查詢)就能夠獲得所有500位朋友的一年數據。 – cpilko