花了几个小时在网上搜索我发现了许多与此相关的帖子,但似乎都没有用,甚至jsfiddle上的一些“工作”示例似乎无法正常工作!
我想在用户点击我的网页上的“赞”时注册。
出现“喜欢”链接,确实会弹出一个新窗口,供您登录Facebook。但我无法订阅'edge.create'事件。我知道sdk加载正常,因为我可以订阅'xfbml.render'事件。
有些帖子说你必须有一个appId才能工作[我这样做]但是其他人声称它没有用。
这是我的代码:
需要注意的一点是,我目前正在// localhost:57477下运行,所以我将类似的href设置为google.com。我注意到其中一个帖子识别出最近的facebook错误,如果href域名与网页不匹配,则此事件不会触发,但现在标记为“已修复”。
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function () {
//console.log('window.fbAsyncInit');
FB.init({
appId: 'myappid',
status: false,
cookie: false,
xfbml: true
});
//Additional initialization code here
FB.Event.subscribe('edge.create',
function (response) {
//console.log('edge.create');
alert('edge.create');
}
);
FB.Event.subscribe('xfbml.render',
function (response) {
//console.log('xfbml.render');
alert('xfbml.render');
}
);
};
// 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>
<div href="http://google.com" class="fb-like" data-send="false" data-width="450" data-show-faces="false" data-font="verdana"></div>
答案 0 :(得分:1)
我知道这是旧线程,但我带着同样的问题来到这里。 对我有用的是Facebook AppID必须属于您的网站所在的域(在Facebook应用程序设置中设置) - localhost将无法正常工作。
答案 1 :(得分:0)
您的代码对我来说很好,我认为问题出在FB.init()选项中。
这就是我使用的:
{
appId: 'myappid',
authResponse: false,
channelUrl: "http://url-to-my-channel-url.com",
cookie: true,
oauth: true,
status: true,
xbfml: true
}
使用这些初始化选项,我可以使用edge.create
跟踪有人点击“赞”按钮的时间。