【发布时间】:2018-04-30 08:09:06
【问题描述】:
我使用的现有 Facebook 回调 JavaScript 代码存在问题。
每次我转到页面(我的 Facebook 按钮所在的页面)并从 Facebook 按下“Like”按钮时,我都会弹出一个对话框,让我可以选择“Like”页面或取消/关闭弹出窗口。
但是一旦我按下“赞”,回调就不起作用了。只有当我第二次及以后点击“喜欢”(或“不喜欢”)时,回调才会起作用。
这是我正在使用的代码。
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'MY_APPID',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.12'
});
FB.Event.subscribe('edge.create', function (response) {
console.log('Liked: ' + response);
});
FB.Event.subscribe('edge.remove', function (response) {
console.log('DisLiked: ' + response)
});
};
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s);
js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.12&appId=MY_APPID&autoLogAppEvents=1';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div id="fb-root"></div><div class="fb-like" data-href="https://www.facebook.com/MyURL" data-layout="standard" data-action="like" data-size="large" data-show-faces="true"></div>
我在 StackOverflow 中检查了类似的问题,但似乎大多数(如果不是全部的话)都已经过时了。希望任何人都可以帮助我。
【问题讨论】:
-
会不会是因为cookies?也许您第一次单击时,它会尝试设置 cookie 并退出。第二次找到cookie并触发?我记得人们曾经把 FB.init 和 cookie:true 放在里面。现在还不是这样吗?
-
我试过了,但它对我不起作用。我怀疑是每次加载/刷新页面时第一次单击“喜欢”按钮时出现的弹出窗口。
-
这不是因为找不到某个cookie而弹出吗??
-
afaik 之类的回调无论如何都已弃用,你想用它们做什么?
-
一位客户希望我有一个功能,网站的访问者/用户需要按“Like”按钮才能获得特定数量的积分。
标签: javascript facebook facebook-javascript-sdk