2011-11-28 171 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按钮。 –