2011-11-28 157 views
3

我目前有一個像我的應用程序的按鈕,我需要檢測這是什麼時候點擊,以便我可以觸發一些JavaScript。Facebook喜歡FB.Event.subscribe

目前我使用這個:

FB.Event.subscribe('edge.create', function(response) {}); 

爲了這個工作,你必須使用類似按鈕的FBML版本。它不適用於HTML5版本。

我在想,從1月1日起FBML被棄用的情況是什麼情況?

謝謝

回答

1

FBML和xFBML不是一回事。

xFBML用於輕鬆地將按鈕添加到網頁。 FBML是一種用於開發畫布應用程序的語言。

如果FBML已被棄用,xFBML不打算被刪除!

請注意:我們對FBML的棄用不會影響XFBML(eXtended Facebook標記語言)。 XFBML是一組XML元素,可以包含在您的HTML頁面中以顯示Social Plugins。加載頁面時,JavaScript文檔中的任何XFBML元素都會被JavaScript SDK處理,從而導致在頁面上呈現相應的插件。在FBML棄用後,JavaScript SDK將繼續支持XFBML(除了用於在我們的服務器上執行FBML的fb:serverFbml元素外)。

來源:https://developers.facebook.com/blog/post/568/

+0

有用的附加信息。謝謝。 –

2

其實,你可以做你想要與HTML5版本做什麼。你的JavaScript將是這個樣子:

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'YOUR_APP_ID', // App ID 
     channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    // CUSTOM LISTENING CODE, or anything else using FB.something, goes below 

    // SAMPLE LISTENING CODE 

    FB.Event.subscribe('edge.create', 
     function(response) { 
      alert('You liked the URL: ' + response); 
     } 
    ); 
    FB.Event.subscribe('message.send', 
     function(response) { 
      alert('You sent the URL: ' + response); 
     } 
    ); 

    // END SAMPLE LISTENING CODE 

}; 

請注意,您還必須建立一個通道的文件,在Facebook Javascript SDK documentation解釋。但是,如果已正確初始化Javascript SDK,然後記住在window.fbAsyncInit函數中包含所有FB.something代碼,則絕對可以檢測何時按下HTML5 like按鈕。

+0

這是xfbml版本 – Tosh

+0

@Tosh:上面的代碼確實可以用於檢測何時按下HTML5 like按鈕。 –