有谁可以告诉我为什么回调不适用于下面给出的类似按钮代码?据我所知,代码是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>
答案 0 :(得分:0)
我发生这种情况的唯一时间是我使用Like按钮的iframe版本。我发现该回调在该版本中根本不起作用。如果是这种情况,您将需要使用找到here的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>
答案 1 :(得分:0)
是的,代码似乎没问题。我有点同样的问题但只有fb像按钮,iframe版本。 我在你的例子中没有看到fb按钮,所以我不知道你使用的是哪一个......所以,根据我的经验,使用标准的fb就好了。