Javascript FB like button edge.create事件在登录后未触发

Javascript FB like button edge.create事件在登录后未触发,javascript,php,facebook,Javascript,Php,Facebook,我在我的网站上有一个类似fb的按钮,下面是我的代码 <fb:like ref="bartastico_fblike" href="https://www.facebook.com/Wetechies" layout="button_count" action="like" show_faces="false" share="false"></fb:like> window.fbAsyncInit = function() { console.log("in

我在我的网站上有一个类似fb的按钮,下面是我的代码

<fb:like  ref="bartastico_fblike" href="https://www.facebook.com/Wetechies" layout="button_count" action="like" show_faces="false" share="false"></fb:like>

window.fbAsyncInit = function() {
      console.log("init");
            FB.init({
                appId: 'xxxx', 
                status: true,
                cookie: true,
                oauth: true,
                xfbml: true
            });
   var page_like_or_unlike_callback = function(url, html_element) {
  console.log("page_like_or_unlike_callback");
  console.log(url);
  console.log(html_element);
};


FB.Event.subscribe('edge.create', page_like_or_unlike_callback);

  };


(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;js.async = true;
  js.src = "//connect.facebook.net/en_US/all.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

window.fbAsyninit=函数(){
console.log(“init”);
FB.init({
appId:'xxxx',
状态:正确,
曲奇:是的,
真的,
xfbml:对
});
var page_like_或_inspect_callback=函数(url、html_元素){
log(“类似页面或不同页面的回调”);
console.log(url);
log(html_元素);
};
FB.Event.subscribe('edge.create',page\u like\u或\u discustomer\u回调);
};
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
问题是edge.create在用户第一次单击like按钮并登录时未触发,即使我尝试了statuschange和authresponsechange事件,也没有第一次触发任何事件

但在那之后,如果我不喜欢也不喜欢这个活动,我会正确地开火

我在js脚本标记中使用这个php文件。 我已将本地主机更改为www.example.com,因此在应用程序设置中,我的站点URL为,域为www.example.com

实例-


清除缓存,然后单击like按钮并登录,like按钮不会变成fiddle中的confirm。重复同样的事情几次-像登录一样干净。这并不一致,它偶尔会触发一次。

好吧,除了facebook,没有人知道答案


是的,它是一只虫子!已经有报道,但facebook还没有指派任何人去做这件事

我也有同样的问题,几个月都没有找到答案。我可以给你一个肮脏的解决办法,它在桌面浏览器上工作,而不是在移动设备上:

您必须检查auth.login而不是edge.create。在auth.login回调中,调用edge.create操作。在edge.create操作中,您现在可以定义回调以重定向或执行任何您喜欢的操作

//If not logged in
FB.Event.subscribe('auth.login', login_event);
//If already logged in just call edge.create
login_event();

//edge create event
var login_event = function(){
    FB.Event.subscribe('edge.create', page_like_callback);
}

var page_like_callback = function(){
    //Do your stuff
    location.href = url;
}
我知道这是相当肮脏的,但像这样,我的like-gate在桌面浏览器上运行良好。唯一的问题是,如果用户没有登录,但已经喜欢上了您的页面,那么您将无法很遗憾地发现这种情况。。但是我同意-edge.create如果不登录就不触发在我看来也是一个bug

顺便说一句,我使用的是auto init函数,而不是FB.init()


你能给出FB上的错误链接吗?
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appID=12321321321321&version=v2.0";