jsを使用してfb connectを使用しています。この私のコードです:私は使用していたログイン用FBログインコールバック関数は、ユーザーが既にログインしている場合には応答しません。
<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にあるべきだと思います。それは本当ですか、それとも他の方法がありますか?
お世話になりました。
私は同じ問題を抱えています
は、ここでは最後からのコメントに答えを見つけました。私はそれがアプリケーションにリンクされている場合は、この動作を示して気づいた。助けてください。 –
すべての準備ができていれば、ログインボタンをクリックしてイベントを呼び出す(ログイン後のイベントと同じ)。 –
@SomnathMuluk fbログインプラグインを使用しているようですので、ログインして既にアプリに接続している場合はログインボタンは表示されません(https://developers.facebook.com/docs/reference/ plugins/login /)(そこの注釈を読んでください)。 それでもやりたいのであれば、カスタムボタンで 'auth.statusChange'イベントを購読することができます。私の答えでそれを説明した。 –