Я использую fb connect с помощью js. Это мой код:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxxxxx',
status : true,
cookie : true,
xfbml : true,
oauth : true
});
FB.Event.subscribe('auth.login', function(response) {
obj=response.authResponse;
token=obj.accessToken;
setCookie("access_token_fb", token, '2');
window.location.reload();
},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" scope="email,user_checkins" >Login with Facebook</div>
'auth.login' в функции подписки имеет обработчик ответа, он вызывается только тогда, когда пользователь нажимает кнопку fb и еще не вошел в FB, введите его / ее адрес электронной почты и пароль в окне fb. В то время как, если пользователь уже вошел в систему facebook, открывается и закрывается диалоговое окно fb. Затем он не передает управление обработчику ответа. Я где-то читал, что force = "true" позволяет ему обнаруживать изменение статуса и вызывать функцию обратного вызова. Но я не знаю, где добавить силу. Думаю, это должно быть в div входа. Это правда или есть другой подход?
Спасибо за ваше время.