我有这个代码,如果用户没有通过facebook在check show facebook上登录,用户可以通过facebook登录。
if($req_user['oauth_provider'] != "facebook")
{
<input type="checkbox" name="fb_post" id="fb_post" value="1" onclick="facebookPermissionsGrant(); return false;">}
?>
如果用户通过facebook show登录复选框选中:
if($req_user['oauth_provider'] == "facebook" && $CONFIG['fb_status'] == 1) {
<input type="checkbox" name="fb_post" id="fb_post" value="1" checked>
}
我遇到的问题是,如果用户没有通过Facebook登录并检查checbox并在facebook上输入用户名和密码。他必须再次刷新页面才能看到该复选框。 有没有办法在ajax或jquery中,所以我不必刷新页面,如果用户登录它将显示框检查?
答案 0 :(得分:0)
是的,有。 Facebook的Javascript API有FB.Event.Subscribe,当用户的登录状态发生变化时会通知你的javascript。
示例:
window.fbAsyncInit = function() {
FB.init({
appId : 'YOURAPPID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'http://www.yourdomain.com/channel.html', // Custom Channel URL
oauth : true //enables OAuth 2.0
});
// retrieve the login status.
FB.getLoginStatus(function(response) {
if (response.authResponse) update_user_is_connected();
else update_user_is_not_connected();
});
// This will be triggered as soon as the user logs into Facebook (through your site)
FB.Event.subscribe('auth.login', function(response) {
update_user_is_connected();
});
};
您可以在此处详细了解FB.Event.subscribe:http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/