使用pyfacebook显示xfbml时出现问题

时间:2010-10-13 13:52:41

标签: javascript python google-app-engine facebook pyfacebook

我在我的应用程序上使用pyfacebook但是我在显示xfbml时遇到问题 例如,我必须使用iframe来显示类似按钮或类似框。

有什么奇怪的: 1)在登录页面上显示正确,我在其他页面上遇到问题(登录后)

2)我使用的FB.init部分是

<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript"></script>
<script type="text/javascript">FB.init("{{ apikey }}", '/static/xd_receiver.html');

在facebook docs上,论证是:

FB.init({
  appId  : 'YOUR APP ID',
  status : true, // check login status
  cookie : true, // enable cookies to allow the server to access the session
  xfbml  : true  // parse XFBML
});

3)当我将FB.init更改为官方fb时,应用程序不再起作用。 (例如,我无法使用此

注销
<a href="#" onclick="javascript:FB.Connect.logoutAndRedirect('/')">Logout</a>

我对FB的东西比较新,所以我可能会混淆一下,但我只想在我的应用程序上显示正确的fbml而不需要修改太多的服务器端。

1 个答案:

答案 0 :(得分:1)

我认为你将Facebook old javascript APInew javascript API混淆。

如新API页面所述,使用它来执行init:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({appId: 'your app id', status: true, cookie: true,
             xfbml: true});
  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

对于注销,你会想要这样的东西:

<a href="#" onclick="javascript:FB.logout(function(response) {window.location.href = '/';})">Logout</a>