Javascript 登录验证时硬刷新Facebook应用程序

Javascript 登录验证时硬刷新Facebook应用程序,javascript,facebook,authentication,Javascript,Facebook,Authentication,我正在努力获得Facebook用户的验证,以便在我正在构建的应用程序上访问他们的基本信息。我正在使用PHP SDK和Javascript SDK。Javascript将调用登录屏幕,PHP将获取数据并将其存储在MySQL表中,以便在应用程序中使用 这是一个你可以投票的应用程序,我已经设置好了,如果用户没有通过应用程序验证,“投票”按钮就是facebook登录按钮。在他们登录之前,一切都很正常。它成功地将它们登录(在弹出的登录对话框中正常登录),但我无法使父窗口成功刷新以反映更改。基本上,获取用户

我正在努力获得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>

window.fbAsyninit=函数(){
FB.init({
appId:'APP_ID',//APP ID
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
FB.Event.subscribe('auth.login',函数(resp){
parent.window.location='MY_APP_URL';
});
};
//异步加载SDK
(职能(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);
}(文件);

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

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

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

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

这与我所说的问题相同。它是一个多页iFrame应用程序,如果这使它有所不同的话。也许你应该使用FB.getLoginStatus函数,响应对象包含关于连接用户FB.getLoginStatus(函数(响应){if(响应.status=='connected'){//connected}的信息,如果(响应.status=='not_authorized'){//未授权}其他{//未登录});