2013-04-20 50 views
0

在Rails應用程序中使用考拉,我需要獲取動態頁面的Facebook喜歡總數。如何以編程方式獲取FB喜歡數量

例如,如果有用戶模型,我想獲取每個用戶的展示頁面的喜歡數量,並將其存儲在User.likes屬性中。

我面臨兩個挑戰:

  1. 考拉get_object方法需要一個Facebook UID。我如何從它的url獲取頁面的UID?

  2. 使用Facebook的開放圖形資源管理器,哈希似乎不包括喜歡的數量?我如何從打開的圖表訪問喜歡的數量?

+0

有我的答案一直heplful? – 2014-01-17 07:55:19

回答

0

我最終設法解決了這個問題的兩個部分。最後,我完全放棄了考拉的get_object,並直接進入了開放圖。

首先,我需要在我的應用程序中找到代表感興趣頁面的開放圖形對象。我發現這在http://graph.facebook.com.?ids=http://my.app.com/user/xx

這返回一個json對象,我需要解析。

最後,我需要從json對象訪問正確的鍵/值。

所以把所有這些組合起來爲我的用戶模型

class User 
    def facebook_likes 
    user_url = UrlGenerator.new.user_url(self) 
    #UrlGenerator is a custom module that allows 
    #access to Rails route helpers in the model, 
    #no doubt some will consider this bad practice but 
    #in this case I believe it is justified 
    graph_url = "https://graph.facebook.com/?ids=#{user_url}" 
    graph_object = JSON.parse(open(graph_url).read) 
    likes = graph_object["#{UrlGenerator.new.candidate_url(self)}"]["shares"] || 0 #returns 0 if no likes found 
    end 
end 

我開放的建議,如果有更好的方法來做到這一點

相關問題