这是我的第一个应用。登录按钮不适用于我的应用程序。它会显示,但是当我点击它时,没有任何反应。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/">
....
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '306025322809511',
channel : 'http://koreplayer.fb.levelkro.com/channel.php',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
FB.Event.subscribe('auth.login', function () {
if (response.authResponse) {
window.location = "/manage.php";
}
});
};
(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/fr_FR/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
....
<div class="fb-login-button">Se connecter en utilisant Facebook</div>
我尝试过使用channel参数,但没有频道就没有显示样式。
答案 0 :(得分:0)
您需要在“fb-login-button”上执行触发操作才能调用FB.login()。您可以使用onclick()或使用jQuery $('。fb-login-button')执行此操作。单击(function(){FB.login();});
此外,下面的问题不会阻止登录弹出,但它会在登录后停止刷新。所以,如果你已经登录,它会让它看起来像登录框一样没有任何反应只会打开然后关闭,因为它无关。
FB.Event.subscribe('auth.login', function () {
if (response.authResponse) {
window.location = "/manage.php";
}
});
需要更改为
FB.Event.subscribe('auth.login', function (response) {
if (response.authResponse) {
window.location = "/manage.php";
}
});
最后,windows.location理想情况下应该有一个完整的URL(以http://或https://开头)。不必,但应该让它更好地工作。
以下评论后编辑:
window.fbAsyncInit = function() {
FB.init({
appId : '306025322809511',
channel : 'http://koreplayer.fb.levelkro.com/channel.php',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
};
FB.Event.subscribe('auth.login', function (response) {
if (response.authResponse) {
window.location = "http://koreplayer.fb.levelkro.com/manage.php";
}
});
您需要在fbAsyncInit函数中订阅FB.Event:
window.fbAsyncInit = function() {
FB.init({
appId : '306025322809511',
channel : 'http://koreplayer.fb.levelkro.com/channel.php',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
FB.Event.subscribe('auth.login', function (response) {
if (response.authResponse) {
window.location = "http://koreplayer.fb.levelkro.com/manage.php";
}
});
};
后期编辑:我已经在帖子第二部分的auth-subscribe参数中添加了“响应”。
答案 1 :(得分:0)
在我知道js sdk加载后我使用xfbml解析来渲染我的按钮,请在下面使用。
<div id="login_button"><div>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '135669679827333',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'https://anotherfeed.com/emo/channel.html', // channel.html file
oauth : true // enable OAuth 2.0
});
function loginbutton(){
var loginb=document.getElementById('login_button');
login.innerHTML+='<div class="fb-login-button">Se connecter en utilisant Facebook</div>';
FB.XFBML.parse(loginb);
};
setTimeout("loginbutton();", 2000);
};
// Load the SDK Asynchronously
(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/en_US/all.js#xfbml=1&appId=135669679827333";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
注意:这将仅呈现登录链接。
答案 2 :(得分:0)
好的,问题是由apps.facebook.com/koreplayer/的iFrame引起的,IE不保存cookie,因为它是在一个框架中。这是IE的一项安全功能,可以防止欺诈。