我尝试在我的网站上使用Facebook登录,这是我加载SDK的方式
window.fbAsyncInit = function() {
FB.init({
appId : '362869753746986', // App ID
channelUrl : '//WWW.FESTIVEHUB.COM/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
和登录按钮
<div class="fb-login-button" data-show-faces="true" data-width="200" data-max-rows="2"></div>
如果我单击登录按钮,它会显示一个新的 Facebook 登录窗口,如果我这样做会记录问题,但是在登录后,小的新窗口仍然存在并且它是空白的,但是如果我手动关闭它并刷新我的页面,登录按钮将替换为我的 FB 个人资料图片,所以我需要该登录窗口自动关闭,我需要一个回调函数,以便我可以采取登录后的操作。NB正在本地主机上工作,如果值得注意的话!
您的代码看起来不错,但您的问题可能是您的 channelUrl 文件。通道 URL 上的域、应用程序注册的 URL 和您尝试从中登录的 URL 都必须匹配。通道文件还需要有一行
<script src="https://connect.facebook.net/en_US/all.js"></script>
去工作。