我有一个Facebook页面。我想知道一个人是否点击了类似按钮,并在subscribe.event 'create-edge'
回调中做了一些事情。
如果一个人已经登录Facebook,这可以正常工作。 'create-edge'
事件被解雇了。但是,如果某人未登录,则此事件不会被解雇。
我没有appId
,所以我没有发送任何内容。
代码供您参考:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" >
<head>
<meta charset="utf-8">
<title>Facebook Like Button</title>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '', // App ID
channelURL : '', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : false, // enable OAuth 2.0
xfbml : true // parse XFBML
});
FB.Event.subscribe('edge.create', function(response) {
alert("say something");
//my code
});
FB.Event.subscribe('auth.login', function(response) {
alert('The status of the session is: ' + response.status);
});
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
<fb:like href="http://www.facebook.com/My_Page" send="false" layout="button_count" width="450" show_faces="false"></fb:like>
</body>
</html>
我也遇到了这个错误:
在调用FB.init()之前调用FB.getLoginStatus()。
似乎我正在接受它,因为我没有appId
发送FB.init
。
造成这种情况的原因是什么?
答案 0 :(得分:0)
如果用户已经喜欢你的页面并且没有登录,就会发生这种情况。为了解决这个问题,我必须把FB.init()放在一个循环中..像这样:
setInterval(function()
{
FB.init({
appId : 'app_id'
channelUrl : 'channel_url'
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : false // parse XFBML
});
}, 5000);