FB就像按钮edge.create事件在登录后没有触发

时间:2014-03-04 06:26:19

标签: javascript php facebook

我的网站上有按钮,下面是我的代码

<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'));

问题是当第一次用户点击like按钮并登录时,edge.create没有触发,即使我尝试了statuschange和authresponsechange事件,也没有第一次触发事件。

但之后如果我不喜欢并且喜欢这个事件正常发射。

在js script标签中使用这个内部php文件。 我已将本地主机更改为www.example.com,因此我的siteurl为http://www.example.com,域名为应用程序设置中的www.example.com。

实例 - http://jsfiddle.net/JY89q/

清除你的缓存,然后点击“喜欢”按钮并登录,就像按钮不转而在小提琴中确认。重复同样的事情 - 清洁就像登录。它不一致,偶尔会发火。

2 个答案:

答案 0 :(得分:0)

嗯,除了facebook,没有人知道答案。

是的,这是一个错误!已报告但尚未被Facebook分配给任何人进行处理。

答案 1 :(得分:0)

我有同样的问题,几个月内没有找到答案。我可以给你一个肮脏的解决方法,它可以在桌面浏览器中使用,但遗憾的是不在移动设备上:

您必须检查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;
}

我知道这很脏,但像这样我的喜欢在桌面浏览器上工作正常。唯一的问题是,如果用户没有登录但已经喜欢你的页面 - 你很遗憾无法抓住这个案例......但我同意 - 如果没有登录,edge.create不会触发似乎是一个bug我也是。

顺便说一下。我使用自动初始化函数而不是FB.init()..

js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appID=12321321321321&version=v2.0";
相关问题