我最近向我的网站添加了 Facebook 登录按钮,并且集成似乎运行良好。我遇到的唯一问题是,当我退出 Facebook 时,“登录”按钮没有显示。还有其他人遇到过这个问题吗?
我使用直接来自 Javascript SDK 文档的代码 (https://developers.facebook.com/docs/reference/javascript):
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'YOUR_APP_ID', // App ID
channelURL : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : true // parse XFBML
});
// Additional initialization code here
};
// 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>
并在我的页面上添加此元素:
<div class="fb-login-button" data-show-faces="true" data-width="200" data-max-rows="1">Login with Facebook</div>
有人发现我这里的内容有任何问题吗?
最佳答案
使用完全精简的 HTML 页面测试此代码对我来说效果很好。如果您没有登录 Facebook,它会显示登录按钮;如果您登录了,它会显示与您一起在该网站上的 friend 。也许您的代码的其他部分正在干扰?您可以尝试使用我下面的基本 HTML 吗?
<html>
<head>
</head>
<body>
<div id="fb-root"></div>
<script>
var appId = 'YOUR_APP_ID';
var siteRoot = 'YOUR_HOST_NAME';
window.fbAsyncInit = function() {
FB.init({
appId : appId,
channelURL : '//'+siteRoot+'/channel.html', // Channel File
status : true,
cookie : true,
oauth : true,
xfbml : true
});
};
(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>
<div class="fb-login-button" data-show-faces="true" data-width="200" data-max-rows="1">Login w/ Facebook</div>
</body>
</html>
密切相关 - 如果您想在用户登录的情况下显示与默认值不同的内容,您可以使用以下命令检查登录状态:
FB.getLoginStatus
或者,如果您想在用户登录后执行某些操作,可以使用以下方式绑定(bind)到登录事件:
FB.Event.subscribe('auth.login', function () {
console.log('Hello world!');
});
关于Facebook JavaScript SDK : Login button not showing up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8172157/