FB.login产生flash错误

时间:2011-06-15 18:10:43

标签: facebook facebook-javascript-sdk

我正在将fbAsyncInit方法用于存在于粉丝页面标签中的iframe应用程序

<script>
  window.fbAsyncInit = function() {
      console.log('fb init');
    FB.init({
      appId  : 12345,
      status : true, // check login status
      cookie : true, // enable cookies to allow the server to access the session
      xfbml  : true  // parse XFBML
    });
  };

  (function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

当我调用注册函数来检查权限时(当用户在页面加载后单击按钮时会发生这种情况)

register = function(){
console.log('starting login');
FB.login(function(response) {
    if (response.session) {
            console.log(response.session);
        } else {                
            console.log('Did not authorize');
        }
}, {perms:'email,publish_stream'});

};

Facebook加载弹出窗口:http://static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb= {会话字符串变量和其他垃圾}

仅在IE中产生闪存错误:

Error #2044: Unhandled StatusEvent:. level=error, code=

我的网站没有闪存

点击继续/解除可能有时会冻结IE导致我结束进程,其他时候弹出窗口消失

3 个答案:

答案 0 :(得分:1)

我们找到了Flash问题的解决方案。请更新FB.init

FB.init({
      appId  : 12345,
      status : true, // check login status
      cookie : true, // enable cookies to allow the server to access the session
      xfbml  : true,  // parse XFBML
      channelURL : 'http://www.YOURDOMAIN.com/channel.html'
    });

在您的域根文件夹中创建channel.html并仅将此代码放入其中:

<script src="https://connect.facebook.net/en_US/all.js"></script>

现在Facebook上的Flash正常运行。

答案 1 :(得分:0)

使用Flash / FaceBook API时Flash 10.2+会出现以下错误。 SecurityError:错误#2000:没有活动的安全上下文。

你得到Flash 10.3 错误#2044:未处理的StatusEvent:。 level = error,code =

我从flash应用程序调用Facebook.login()。登录成功,但此错误似乎会破坏该过程。此问题仅影响IE 8而不影响其他浏览器。 我已经尝试过channelUrl,但是在另一个域中,因为我无法访问闪存文件所在的位置。我用Charles来映射本地。这有用吗?

除此之外我迷失了。我不确定我的SWF或Facebook的代理SWF是否触发了错误。太令人沮丧了。这是几个月前的工作。

答案 2 :(得分:0)

上面提供的解决方案对我不起作用。但是我在stackoverflow中找到了另一个主题(感谢Sean Kinsey):

查看此错误报告: http://bugs.developers.facebook.net/show_bug.cgi?id=15596 IE8,getLoginStatus在使用flash XD时永远不会完成 - 听起来它可能就是你所经历的。

在这种情况下,请确保 fb-root div 设置为可见性:隐藏显示:无,因为这会导致XD Flash无法渲染

(我确实也添加了channelURL)