Javascript Facebook登录无限循环

Javascript Facebook登录无限循环,javascript,ajax,facebook-graph-api,fbconnect,Javascript,Ajax,Facebook Graph Api,Fbconnect,我的页面上的Facebook登录有问题。 首先,我仅使用FB.Login进行了尝试,但随后我收到以下消息:“当用户已连接时调用FB.Login() 所以我添加了FB.getLoginStatus,但现在它将我记录在一个无限循环中。即使我已登录(进入我的系统)且未点击FB Connect按钮 我如何实现在单击FB connect按钮之前不登录 <div id="fb-root"></div> <script>(function(d, s, id) { v

我的页面上的Facebook登录有问题。 首先,我仅使用FB.Login进行了尝试,但随后我收到以下消息:“当用户已连接时调用FB.Login()

所以我添加了FB.getLoginStatus,但现在它将我记录在一个无限循环中。即使我已登录(进入我的系统)且未点击FB Connect按钮

我如何实现在单击FB connect按钮之前不登录

<div id="fb-root"></div>
<script>(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) return;
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/fb_LT/all.js#xfbml=1&appId=198866780209581";
     fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

window.fbAsyncInit = function() {
      FB.init({
         appId      : "198866780209581", // App ID
         status     : true,
         cookie     : true,
         xfbml      : true,
         oauth      : true,
      });   
    var login = false;

 FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
      console.log('connected');
      login=true;
      $.ajax({
              type: "POST",
              url: "/?eID=login&modus=facebook&fb-login=1",
              data: $(this).serialize(),
              success: function(msg) {
              console.log("LOGIN");
              window.location.reload();
              }
            })
      var uid = response.authResponse.userID;
      var accessToken = response.authResponse.accessToken;
    }
    else{
      FB.login(function(response) {
       if (response.authResponse) {
       console.log('Welcome!  Fetching your information.... ');
       FB.api('/me', function(response) {
         console.log('Good to see you, ' + response.name + '.');
         if(login===false)
         {
           alert('nicht connected');
         }
       });
       } else {
       console.log('User cancelled login or did not fully authorize.');
       }   
     }, {scope: 'email'});
    }});
// Additional initialization code here
};

</script>

(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/fb_LT/all.js#xfbml=1&appId=198866780209581”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
window.fbAsyninit=函数(){
FB.init({
appId:“198866780209581”,//appId
状态:正确,
曲奇:是的,
xfbml:是的,
真的,
});   
var login=false;
FB.getLoginStatus(函数(响应){
如果(response.status===“已连接”){
console.log('connected');
login=true;
$.ajax({
类型:“POST”,
url:“/?eID=login&modus=facebook&fb login=1”,
数据:$(this).serialize(),
成功:功能(msg){
console.log(“登录”);
window.location.reload();
}
})
var uid=response.authResponse.userID;
var accessToken=response.authResponse.accessToken;
}
否则{
FB.登录(功能(响应){
if(response.authResponse){
log('欢迎!获取您的信息…);
FB.api('/me',函数(响应){
log(“很高兴见到你,+response.name+”);
如果(登录===false)
{
警报(“nicht连接”);
}
});
}否则{
log('用户取消登录或未完全授权');
}   
},{范围:'电子邮件'});
}});
//这里有额外的初始化代码
};

解决方案是如下更改单击功能:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/fb_LT/all.js#xfbml=1&appId=198866780209581";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
window.fbAsyncInit = function() {
    FB.init({
      appId      : "198866780209581", // App ID
      status     : true,
      cookie     : true,
      xfbml      : true,
      oauth      : true,
    });   
    var login = false;
  $(".fb-login-button").live("click", function() {
FB.getLoginStatus(function(response) {
 alert('hier 1');
    if (response.status === 'connected') {
 alert('connected');
      console.log('connected');
      login=true;
      $.ajax({
              type: "POST",
              url: "/?eID=login&modus=facebook&fb-login=1",
              data: $(this).serialize(),
              success: function(msg) {
              console.log("LOGIN");
              window.location.reload();
              }
            })
      var uid = response.authResponse.userID;
      var accessToken = response.authResponse.accessToken;
    }
    else{
      alert('im else');
      FB.login(function(response) {
       if (response.authResponse) {
       console.log('Welcome!  Fetching your information.... ');
       FB.api('/me', function(response) {
         console.log('Good to see you, ' + response.name + '.');
         if(login===false)
         {
           alert('nicht connected');
         }
       });
       } else {
       console.log('User cancelled login or did not fully authorize.');
       }   
     }, {scope: 'email'});
    }});
});
// Additional initialization code here
};
$(“.fb登录按钮”).live(“单击”,函数(){

}

我的最终代码如下所示:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/fb_LT/all.js#xfbml=1&appId=198866780209581";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
window.fbAsyncInit = function() {
    FB.init({
      appId      : "198866780209581", // App ID
      status     : true,
      cookie     : true,
      xfbml      : true,
      oauth      : true,
    });   
    var login = false;
  $(".fb-login-button").live("click", function() {
FB.getLoginStatus(function(response) {
 alert('hier 1');
    if (response.status === 'connected') {
 alert('connected');
      console.log('connected');
      login=true;
      $.ajax({
              type: "POST",
              url: "/?eID=login&modus=facebook&fb-login=1",
              data: $(this).serialize(),
              success: function(msg) {
              console.log("LOGIN");
              window.location.reload();
              }
            })
      var uid = response.authResponse.userID;
      var accessToken = response.authResponse.accessToken;
    }
    else{
      alert('im else');
      FB.login(function(response) {
       if (response.authResponse) {
       console.log('Welcome!  Fetching your information.... ');
       FB.api('/me', function(response) {
         console.log('Good to see you, ' + response.name + '.');
         if(login===false)
         {
           alert('nicht connected');
         }
       });
       } else {
       console.log('User cancelled login or did not fully authorize.');
       }   
     }, {scope: 'email'});
    }});
});
// Additional initialization code here
};

(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/fb_LT/all.js#xfbml=1&appId=198866780209581”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
window.fbAsyninit=函数(){
FB.init({
appId:“198866780209581”,//appId
状态:正确,
曲奇:是的,
xfbml:是的,
真的,
});   
var login=false;
$(“.fb登录按钮”).live(“单击”,函数(){
FB.getLoginStatus(函数(响应){
警报(“hier 1”);
如果(response.status===“已连接”){
警报(“已连接”);
console.log('connected');
login=true;
$.ajax({
类型:“POST”,
url:“/?eID=login&modus=facebook&fb login=1”,
数据:$(this).serialize(),
成功:功能(msg){
console.log(“登录”);
window.location.reload();
}
})
var uid=response.authResponse.userID;
var accessToken=response.authResponse.accessToken;
}
否则{
警惕(“我是其他人”);
FB.登录(功能(响应){
if(response.authResponse){
log('欢迎!获取您的信息…);
FB.api('/me',函数(响应){
log(“很高兴见到你,+response.name+”);
如果(登录===false)
{
警报(“nicht连接”);
}
});
}否则{
log('用户取消登录或未完全授权');
}   
},{范围:'电子邮件'});
}});
});
//这里有额外的初始化代码
};

如果(response.status==“connected”)从未发生过吗?它发生在我登录时,但它会立即刷新页面并再次执行相同操作。但我找到了解决方案。