0
我正在使用Facebook的api登錄用戶,它工作正常,但我有一些麻煩檢索數據和後面的代碼使用。我試過一些解決方案,但沒有任何工作。使用臉書和retirve數據登錄
這裏到目前爲止的代碼
<script type="text/javascript">
// 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));
// Init the SDK upon load
window.fbAsyncInit = function() {
FB.init({
appId: 'MY_APP_ID',
channelUrl: 'MY_URL',
status: true,
cookie: true,
xfbml: true
});
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
// connected
} else if (response.status === 'not_authorized') {
// not_authorized
} else {
// not_logged_in
}
});
}
function login() {
FB.login(function (response) {
if (response.authResponse) {
retrieveInfo();
window.location.reload();
} else {
// cancelled
}
});
}
function retrieveInfo() {
FB.api('/me', function (response) {
var name = document.getElementById('name');
name.innerHTML = response.name;
var email = document.getElementById('email');
email.innerHTML = response.email;
});
}
</script>
<fb:login-button onlogin="login()" perms="email,user_about_me,user_birthday">Login com Facebook</fb:login-button>
<div align="center">
<div id="name"></div>
<div id="email"></div>
</div>
正如我所說的數據被檢索確定,但我該如何使用它後面的代碼?
'FB.api'是_asynchronous_方法 - 這意味着,下面的代碼立即執行,執行不會等待此方法完成。對於你的代碼來說,這意味着你在調用retrieveInfo之後立即重新加載頁面,這當然是在API請求完成之前。 – CBroe