【问题标题】:XD Proxy FacebookXD 代理 Facebook
【发布时间】:2012-04-07 16:28:57
【问题描述】:

我正在使用 facebook 连接登录我的网站。

在我的 html 页面中,我编写了代码:

<html>    
<head>    
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />      
<title>Test JOpenID  </title>    
</head>    
<body>
  <div id="fb-root"></div>          
<script src="http://connect.facebook.net/en_US/all.js"></script>          
<script>

     FB.init({
        appId:'180065668680582', 
        cookie:true,
        status: true, 
        xfbml:true
     });

</script>      
<fb:login-button perms="email,user_checkins">
     Login with Facebook
  </fb:login-button>

</body>
</html>

因此,当我单击“使用 Facebook 登录”按钮时,会弹出一个窗口并要求填写用户名和密码。直到此时一切正常。当我单击允许按钮进入目标网站时,问题仍然存在。一个弹出窗口也会出现和消失。窗口的结尾是 XD 代理,在 url 上它是 ::

http://static.ak.fbcdn.net/connect/xd_proxy.php#cb=f183a80ac008141&origin=http%3A%2F%2F174.129.214.219%2Fff715e2f856e19&relation=opener&transport=flash&frame=f1d4f8afdf94ebe&result=%7B%22perms%22%3A%22email%2Cuser_checkins%22%2C%22selected_profiles%22%3A100001492618815%2C%22session%22%3A%22%7B%5C%22session_key%5C%22%3A%5C%222.pRXlnxq8Ig6QwZyJsG732w__.3600.1294326000-100001492618815%5C%22%2C%5C%22uid%5C%22%3A%5C%22100001492618815%5C%22%2C%5C%22expires%5C%22%3A1294326000%2C%5C%22secret%5C%22%3A%5C%225pe7qxMU_7DitJucmcyftA__%5C%22%2C%5C%22access_token%5C%22%3A%5C%22180065668680582%7C2.pRXlnxq8Ig6QwZyJsG732w__.3600.1294326000-100001492618815%7C_QjDI7eTUD32QVvapbsqxn-r4DE%5C%22%2C%5C%22sig%5C%22%3A%5C%22aa66a1d8b234ebe863e386bb8a6520e7%5C%22%7D%22%7D

根据我的要求,我需要在允许 facebook 后允许我进入我已经注册的目标站点。但它只是一个窗口,并在一秒钟内消失。

具体是什么问题和解决方法告诉我...

谢谢

【问题讨论】:

  • 你是如何解决这个问题的?我通过一个有类似问题的 facebook 移动网站得到它(虽然只在一种类型的手机上)

标签: facebook


【解决方案1】:

不要使用

FB.init({ apiKey: 'API_KEY' });

并使用

FB.init({ appId: 'APP_ID', status: true, cookie: true, xfbml: true });

【讨论】:

    【解决方案2】:

    要在 Opera 中修复它,只需在 FB.init() 之后添加以下内容:

    if($.browser.opera ) // it uses jQuery library here!
    {
       FB.XD._transport="postmessage";
       FB.XD.PostMessage.init();
    }
    

    【讨论】:

      【解决方案3】:

      我在 IE9 中也遇到过同样的问题,它似乎源于升级到 Flash Player 10。自从找到 open bug at Facebook 覆盖它后,我对尝试修复它失去了希望。但是Henson 已发布an answer 为我修复了它。在我的站点大师的 JavaScript 中,我删除了这些行

          FB.UIServer.setLoadedNode = function (a, b) { 
          //HACK: http://bugs.developers.facebook.net/show_bug.cgi?id=20168
          FB.UIServer._loadedNodes[a.id] = b;
          };
      

      现在它可以工作了。 (注意,我还没有检查 IE8 问题是否是为了克服退货问题。)

      【讨论】:

        猜你喜欢
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多