0

我正在努力从 Facebook 用户那里获得验证,以访问他们在我正在构建的应用程序上的基本信息。我正在使用 PHP SDK 和 Javascript SDK。Javascript 用于调用登录屏幕,PHP 用于获取数据并将其存储在 MySQL 表中以在应用程序周围使用。

这是一个应用程序,您可以在其中对事物进行投票,并且我已对其进行了设置,因此如果用户未使用该应用程序进行验证,则“投票”按钮是 Facebook 登录按钮。在他们登录之前,一切都很好。它成功地将它们登录(在弹出登录对话框中正常),但我无法让父窗口成功刷新以反映更改。基本上,获取用户信息的唯一方法是他们登录然后手动刷新应用程序。然后它会正确发送所有数据。我已经尝试过location.reload(true);并且我已经尝试过父窗口重定向,但这些似乎都不起作用。

下面是我的Javascript:

<div id="fb-root"></div>
  <script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : 'APP_ID', // App ID
        status     : true, // check login status
        cookie     : true, // enable cookies to allow the server to access the session
        xfbml      : true  // parse XFBML
      });

      FB.Event.subscribe('auth.login', function(resp) {
        parent.window.location = 'MY_APP_URL';
    });
    };

    // Load the SDK Asynchronously
    (function(d){
      var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
      js = d.createElement('script'); js.id = id; js.async = true;
      js.src = "//connect.facebook.net/en_US/all.js";
      d.getElementsByTagName('head')[0].appendChild(js);
    }(document));
  </script>

有没有更有效的方法来硬刷新父窗口?谢谢!

4

1 回答 1

0

如果 location.reload 不起作用,您可以尝试

window.location.href = window.location.href;

这不是最优雅的解决方案,但它有效

于 2012-11-30T16:01:28.127 回答