Facebook API,iFrame中的Canvas应用程序,Javascript API,在IE8中被破坏?

时间:2010-08-27 21:59:19

标签: api facebook iframe canvas

我试图在FB论坛寻求帮助,但是他们真的没有太多帮助。

我的应用程序设置为iframe应用程序,但如果将应用程序设置为fbml应用程序并且下面的页面通过fb:iframe加载,则会出现相同的行为。无论使用哪种高级设置,都存在相同的行为。一个简单的FB.init(见下文)或对它的异步调用存在相同的行为。

我的网站网址已正确设置为http://foo.mysitenamehere.foo/,这是此文件的位置。

这是我的应用程序的完整: 代码:

<html>
<head>
<script src="http://connect.facebook.net/en_US/all.js"></script>
</head>
<body>
<div id="fb-root"></div>
<script type="text/javascript">
  FB.init({
    appId  : '127717367239744',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });

  alert("FB: " + FB + " FB.getSession(): " + FB.getSession());
  FB.getLoginStatus(function(response) {
      if (response.session) {
        alert("1");
      } else {
        alert("2");
      }
    });
</script>
</body>
</html>

以下是发生的事情:

工作浏览器中的行为(Firefox,Chrome,Safari PC和Mac,IE的部分用户) 所有这些浏览器中都会出现第一个会话警报和警报“1”。如果我检查请求(使用firebug或fiddler2),在每个工作的浏览器中,包括IE工作时,对login_status.php的请求是一个很长的GET请求。

在IE浏览器中行为 第一个会话警报显示会话为空/未定义。查看请求,login_status.php是POST而不是GET请求。此POST请求通常超过4000个字符。此请求源自all.js。

login_status.php返回此信息: 代码:

HTTP/1.1 200 OK
Content-Type: text/plain;charset=utf-8
X-Cnection: close
Date: Fri, 27 Aug 2010 20:50:40 GMT
Content-Length: 22

Invalid Application ID

显然我的应用ID是有效的(参见其他4个工作浏览器),而POST请求被破坏或者不被login_status.php接受,因此响应失败并且应用程序在IE中被破坏。

这是一个非常令人痛苦的问题。我的应用程序无法被简化为一个更简单的示例,但它无法正常工作。每个画布iframe应用程序是否在IE中表现出这种行为?如果没有,我到底在做什么呢?

提前感谢任何建议。

2 个答案:

答案 0 :(得分:1)

在我更改其中一个高级设置之前,我也被打破了。转到advance setting tab并启用“POST for Canvas”选项。这导致了其他问题,但我能够解决您遇到的问题。

答案 1 :(得分:0)

您可能没有安装Flash。显然,Facebook API仅针对某些版本的IE需要Flash。在我的测试中,我发现这是真的,返回您看到的相同错误消息:“无效的应用程序ID”。

进一步阅读:

Facebook Connect integration: does it require flash?

http://forum.developers.facebook.net/viewtopic.php?id=75095(最后几篇文章)