Javascript Facebook登录无限循环
我的页面上的Facebook登录有问题。 首先,我仅使用FB.Login进行了尝试,但随后我收到以下消息:“当用户已连接时调用FB.Login() 所以我添加了FB.getLoginStatus,但现在它将我记录在一个无限循环中。即使我已登录(进入我的系统)且未点击FB Connect按钮 我如何实现在单击FB connect按钮之前不登录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
<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”)从未发生过吗?它发生在我登录时,但它会立即刷新页面并再次执行相同操作。但我找到了解决方案。