我最近升级到了open graph,并在我的网站上实现了一些facebook社交插件,比如fb:friendpill fb:like box等。
自从我实现了这些新特性之后,我发现这些插件有一些随机行为。
就像在我的主页上一样,当你输入URL并第一次去的时候,Facebook的社交插件都没有呈现出来——没有登录按钮,没有朋友堆,没有什么。
但是当你点击ctrl f5时,它们就会出现。首先,我认为这可能与我的机器有关,但昨天我的两个用户报告了相同的问题。
我到处搜索,这似乎与你把连接代码放在哪里有关。现在,我把脚本的这个相关部分放在我的头部标签中——我甚至尝试把它放在身体标签的末尾之前——但是没有什么不同。
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({appId: '<?php echo Zend_Registry::getInstance()->configuration->facebook->appid;?>', status: true, cookie: true, xfbml: true});
/* All the events registered */
FB.Event.subscribe('auth.login', function(response) {
// do something with response
login();
});
FB.Event.subscribe('auth.logout', function(response) {
// do something with response
logout();
});
};
(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);
}());
function login(){
document.location.href = "<?php echo $this->baseUrl(); ?>/login/log";
}
function logout(){
FB.init({appId: '<?php echo Zend_Registry::getInstance()->configuration->facebook->appid;?>'});
FB.logout(function(response) {
// user is now logged out
});
document.location.href = "<?php echo $this->baseUrl(); ?>/login/logout";
return false;
}
</script>
如果您对解决问题有任何见解,我们将不胜感激。
谢谢