使用 pyfacebook 显示 xfbml 时出现问题

发布于 2024-09-26 23:12:55 字数 894 浏览 8 评论 0原文

我在我的应用程序上使用 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文档上的参数是:

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,而不需要对服务器端进行太多修改。

I'm using pyfacebook on my app but I'm having problems displaying xfbml
For example I have to use iframes to display like buttons or like boxes.

What's strange:
1) On the login page the appears correctly, I just have problems on other pages (once logged in)

2) The FB.init part I use is

<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');

Whereas on the facebook docs the arguments are:

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) When I change the FB.init to the official fb one, application doesn't work anymore.
(eg I can't logout using this

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

I'm relatively new to FB stuff, so I'm probably mixing things up, but I just want to display correct fbml on my app without modifying too much the server side.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

原来分手还会想你 2024-10-03 23:12:55

我认为您将 Facebook 的 旧的 javascript API 与他们的 新的 javascript API

正如新 API 页面上提到的,使用它来执行初始化:

<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>

I think you are confusing Facebook's old javascript API with their new javascript API.

As mentioned on the new API page, use this to do the 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>

For the logout, you would want something like this:

<a href="#" onclick="javascript:FB.logout(function(response) {window.location.href = '/';})">Logout</a>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文