下面將登錄事件綁定到一個div。如果我點擊它,我會得到預期的js sdk登錄彈出窗口。然而,在提交彈出式憑證後,彈出窗口會變成白色並且不會關閉。如果我刷新頁面,我已登錄,但不會像您預期的那樣自動刷新。任何人有任何想法?Facebook的JS SDK - 登錄彈出不關閉
編輯:相同的代碼(使用差異應用程序ID和域憑據)可以在不同的服務器上工作。這使我相信我的問題可能與下面的代碼無關。是否有任何應用程序或服務器配置,可能導致登錄彈出失敗關閉/更新?
<!DOCTYPE html>
<html class="no-js ie ie10plus" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object#">
<script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.0.6-development-only.js"></script>
</head>
<body>
<div id="fb-root"></div>
<div id="fbLogin">Test login link</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" ></script>
<script>
var fbmm = {};
window.fbAsyncInit = function() {
FB.init({
appId : '339910146083688', // App ID
cookie: true,
xfbml: true,
status: true,
oauth: true
});
$(document).ready(function(){
$("#fbLogin").click(function(){
console.log('test');
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 + '.');
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
});
});
});
};
(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));
</script>
</body>
</html>
你的代碼是好的,因爲你期望的工作。 – Philip
感謝Philip。我的對話框窗口並未在8000端口上關閉,但是我未經身份驗證並登錄。我不確定,但是您可能需要退出Facebook並單擊它才能看到該錯誤。 – Matrym
我登出後窗口關閉。我用我的app_id在端口80上運行它。在您的應用程序url設置中,您是否添加了帶有端口的url? – Philip