类似FaceBook的按钮回调不起作用


FaceBook like-button callbacks not working

有人能告诉我为什么回调不适用于下面给出的类似按钮代码吗?据我所见,该代码是用JavaScript设置的标准代码。初始化第一个按钮,然后异步加载API,并提供回调函数。

<div id="fb-root"></div>
<script>
window.fbAsyncInit=function(){
    FB.init({
        appId:'',//App ID
        status:false,// check login status
        cookie:true,// enable cookies to allow the server to access the session
        xfbml:true// parse XFBML
    });
    // Additional initialization code here
    FB.Event.subscribe('edge.create', function(response) {
        //alert("user_id1:<?php echo $user_id1; ?>, user_id2:<?php echo $user_id2; ?>");
        /*var data={
            action:"ap_buttons_give_points",
            author_id:<?php echo $author_id; ?>,
            post_id:<?php echo $post_id; ?>,
            type:"like"
        }
        jQuery.post("<?php echo $ajax_url; ?>",data,function(resp){
        });*/
    alert('You just liked the page!');
});
    FB.Event.subscribe('edge.remove', function(response) {
        /*var data={
            action:"ap_buttons_take_points",
            author_id:<?php echo $author_id; ?>,
            post_id:<?php echo $post_id; ?>,
            type:"like"
        }
        jQuery.post("<?php echo $ajax_url; ?>",data,function(resp){
            //alert("fb remove:"+resp);
        });*/
    alert('You just unliked the page!');
});
};
// Load the SDK Asynchronously
(function(d){
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js, ref);
}(document));
</script>

是的,代码看起来不错。我也有同样的问题,但只有类似fb的按钮,iframe版本。我在你的例子中没有看到fb按钮,所以我不知道你用的是哪一个。。。所以,根据我的经验,使用标准的fb。

我唯一一次出现这种情况是在使用iframe版本的Like按钮时。我发现回调在那个版本中根本不起作用。如果是这种情况,您将希望使用此处的Javascript SDK版本,可以使用XFBML或HTML5:

<fb:like send="true" width="450" show_faces="true"></fb:like>

<div class="fb-like" data-send="true" data-width="450" data-show-faces="true"></div>