2011-05-20 86 views
2

留下Facebook用戶的名稱我想弄清楚如何獲得在評論社交插件中使用FB.Event.subscribe留下評論的Facebook用戶的名稱和comment.create事件。如何獲取使用FB.Event.subscribe

我只看到response對象2個屬性:

  • response.href:頁面的URL,該評論被留在
  • response.commentID:ID評論跟帖的

是它可能實現客戶端代碼來獲得留下評論的Facebook用戶的名稱?我正在嘗試爲我的服務器保存一個額外的往返服務器,以便打電話給圖API以獲取所有評論,然後嘗試確定哪些用戶離開了最近的用戶。我認爲可能有辦法運行一個FQL查詢,但我在這裏輸了。

我想這將是一個明顯的事情,爲Facebook的事件揭露,但他們的documentation是如此可憐我一直無法看到任何東西。

更新:我使用FB.api由其他用戶的建議和使用/me嘗試,但我不能使用,自從興田用戶留下評論沒有給予我任何權限。這很讓人困惑,因爲他們登錄後在評論框中發佈評論,如果您轉到用戶的Facebook頁面,用戶的名稱就是公開信息。所以我需要一種方法來查詢註釋用戶的名字,而不是在FB.api中使用/me

回答

1

這種方法絕對有效,但有一個競爭條件的問題,如果它是一個線索,得到大量的評論,因爲獲得評論的請求可能不會在另一個評論之前發送:

FB.Event.subscribe('comment.create', function(comment) { 
    FB.api('comments', {'ids': comment.href}, function(res) { 
     var data = res[comment.href].data; 
     console.log(data.pop().from.name); 
    }); 
}); 

此工程無需用戶驗證您的應用程序。

+0

這是一個錯誤...'未捕獲的TypeError:無法調用未定義的'pop'方法 – 2013-09-25 08:50:33

0

在閱讀下面的TMC評論後,我意識到這是不可能的,沒有權限。如果你想這樣做,那麼你將不得不要求每個評論者授予你基本的權限。

原來的答案

您可以使用Facebook的Javascript SDK功能FB.api其運作方式爲PHP SDK的API函數相同,但返回一個JSON字符串。請查看this page獲取文檔。您可能還想看看Comment Object Documentation

評論有一個屬性from它給出了用戶的idname

+0

據我所知,評論ID有一個評論線程ID的前綴。但是,我看不到獲取評論ID的簡單方法。 'response.commentID'屬性是評論線程ID(例如'1234'),而不是特定的評論ID(例如'1234_56789')。 – TMC 2011-05-21 05:54:26

+1

原來這個建議使用FB.api不起作用。我嘗試用FB.api查詢「/ me」,但留下注釋的用戶總是會爲'response.name'返回'undefined',因爲用戶在登錄時沒有給我任何權限來使用註釋框。我需要另一種方式,而不使用'/ me'給FB.api。 – TMC 2011-06-03 10:18:00

相關問題