Javascript FB like button edge.create事件在登录后未触发
我在我的网站上有一个类似fb的按钮,下面是我的代码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: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";