题
我有几个Facebook上的按钮,这些按钮正在通过XFBML渲染。单击它们后,它们似乎可以使用,因为它们从标准按钮更改为“竖起大拇指”的图标,该图标说“您喜欢这样”。但是,在一两秒钟之后(我假设要击中FB的服务器并返回所需的时间),它自动不利于本身,转回原始的类似按钮。
我的代码非常标准:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" lang="en">
...
<fb:like href="http://www.example.com/valid/path" layout="button_count" ref="recipe_preview" />
...
<script type="text/javascript">
window.fbAsyncInitExt = function() {
FB.Event.subscribe('edge.create', function(response) {
alert('Facebook Like Button: ' + response);
});
};
</script>
...
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: 'XXXXXXXXXX', // my app ID is here
status: true,
cookie: true,
xfbml: true
});
if (typeof(fbAsyncInitExt) == 'function') {
fbAsyncInitExt();
}
};
(function() {
var e = document.createElement('script');
e.type = 'text/javascript';
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
})();
</script>
编辑: 对于它的价值,我还试图查看Facebook是否正在发送任何日志信息,但似乎并非如此:
<script type="text/javascript">
window.fbAsyncInitExt = function() {
FB.Event.subscribe('edge.create', function(response) {
alert('Facebook Like Button: ' + response);
console.debug(response);
});
FB.Event.subscribe('fb.log', function(response) {
alert('LOG: ' + response);
console.debug(response);
});
};
</script>
解决方案
经过大量挖掘,我终于发现了错误的源头。事实证明,该页面由 href
我的价值 fb:like
标签至少需要一个 fb:app_id
或者 fb:admins
元标记在头上。以供参考: http://developers.facebook.com/docs/opengraph
其他提示
在尝试了所有解决方案之后,我无法找到任何工作,但是当您从Facebook开发人员页面中获取代码时,我尝试使用“实时供稿”应用程序ID,而不是默认的“实时流”,这对我有用。
不隶属于 StackOverflow