我看了一些答案,但我似乎没有找到任何工作。现在我想知道这是否因为我正在工作的网站目前只能通过XAMPP在本地可见。
下面是我尝试过的一些代码片段:
<script>
FB.Event.subscribe('edge.create', location.href = 'test.php');
</script>
和
FB.Event.subscribe('edge.create', function(response) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "test.php", true);
xmlhttp.send();
});
facebook代码似乎运行,但我的php页面从未被调用。甚至一个简单的警告("您喜欢这个URL:");是行不通的。我可以点赞这个页面,它就会显示在我的facebook墙上。
这是我在body标签后面的内容(从FB复制-粘贴):<div id="fb-root"></div>
<script>(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 = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
我在某个地方看到一个帖子,声称如果被喜欢的URL与点击按钮的URL不匹配,这将不起作用。嗯,当真正的URL是。com时,我从"www.site-name.local"点击。它似乎工作到喜欢的URL显示在我的FB墙上,但甚至不火。
我刚刚检查了Firebug控制台,我得到:
FB is not defined
FB.Event.subscribe('edge.create',
我希望你能朝正确的方向推我一把。
确保FB。init在FB.Event.subscribe被触发之前被调用
好的,这是解决方案。这可能不是解决办法,但它对我有用。
代码和解释张贴在FB Dev网站:
http://developers.facebook.com/docs/guides/web/<html>
<head>
<title>My Great Web page</title>
</head>
<body>
<div id="fb-root"></div>
<script>
(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 = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-like"></div>
</body>
</html>
工作得很好,直到后来能够"喜欢"一个页面,并在FB上显示,但它没有触发任何动作,一旦按钮被点击。
我决定为网站申请一个App ID。这使一切顺利。
新代码看起来像这样:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'my_app_ID_number', // App ID
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
// Additional initialization code here
// Get notified when user likes this
FB.Event.subscribe('edge.create', function(response){location.href = 'test.php'});
};
// 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));
我必须放置"fbi . event"。订阅",否则会导致错误。"FB.Event。订阅"似乎在facebook之前运行"。它"有机会完成自己的工作。如果你在一个页面上有多个"喜欢"按钮,我不知道该怎么做。
无论如何,这对我有用。