像按钮这样的Facebook会自动撤消

时间:2010-11-29 15:10:11

标签: facebook facebook-like

我自己有几个类似Facebook的按钮,通过XFBML呈现。点击它们之后,它们似乎起作用,它们从标准的按钮变为“赞成”图标,上面写着“你喜欢这个”。然而,在一两秒之后(我假设点击FB的服务器并返回时间),它会自动不受欢迎,转回原来的按钮。

See a video of what I mean here.

我的代码很标准:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" lang="en">

...

<fb:like href="http://www.example.com/valid/path" layout="button_count" ref="recipe_preview" />

...

<script type="text/javascript">
    window.fbAsyncInitExt = function() {
        FB.Event.subscribe('edge.create', function(response) {
            alert('Facebook Like Button: ' + response);
        });
    };
</script>

...

<div id="fb-root"></div>
<script type="text/javascript"> 
    window.fbAsyncInit = function() {
        FB.init({
            appId:  'XXXXXXXXXX',  // my app ID is here
            status: true,
            cookie: true,
            xfbml:  true
        });
        if (typeof(fbAsyncInitExt) == 'function') {
            fbAsyncInitExt();
        }
    };
    (function() {
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    })();
</script> 

编辑:为了它的价值,我还试图查看Facebook是否发送了任何日志信息,但它似乎不是:

<script type="text/javascript">
    window.fbAsyncInitExt = function() {
        FB.Event.subscribe('edge.create', function(response) {
            alert('Facebook Like Button: ' + response);
            console.debug(response);
        });
        FB.Event.subscribe('fb.log', function(response) {
            alert('LOG: ' + response);
            console.debug(response);
        });
    };
</script>

2 个答案:

答案 0 :(得分:4)

经过大量的挖掘,我终于发现了错误的根源。事实证明,我的href标记中的fb:like值所引用的页面至少需要HEAD中的fb:app_idfb:admins META标记之一。供参考:http://developers.facebook.com/docs/opengraph

答案 1 :(得分:0)

尝试了我能找到的所有解决方案后,没有工作,但是当你从facebook开发者页面获取代码时,我尝试使用“实时提要”应用ID而不是默认的“直播”对我来说。