2012-01-12 3 views
1

私は数ヶ月間JS SDKと組み合わせて以下のコードを使用してきました。ここ数日、私にはあらゆる種類の問題が与えられています。JS SDKのauth.logoutイベントの動作が最近変更されたようです - 何が起こっていますか?

  1. ログアウトイベントログアウト時に発生しません - 私はのように、ログイン/アウトのためのJS XFBMLタグを使用しています:

を注:ログアウトボタンをクリックすると、ログアウトを行いますFBからのイベントは私のサイトでは発生しません。

  1. ログアウト時にページをリロードするとログアウトイベントが発生し、ログアウトイベントが発生したときにページが再ロードされます。最初のログアウトイベントが発生していないので、それほど大きな取引ではありません。しかし、今日までは、ログアウトイベントはログアウト時およびすべてのページロード時に(ログアウト時に)ログアウトリダイレクトを介して無期限にページをリロードすることを意味していました。

これは数日前までうまくいきましたが、私は数週間または数ヶ月でその部分に触れていません。何かご意見は?

イベントコード:

FB.Event.subscribe('auth.logout', function(response) { 

    window.location.href = '/logout.php'; 

    }); 

注:私は、サイト上の他の機能のためのPHP SDKを使用しています - 私はここ程度に別のポストを見つけ、両方

の最新バージョンを使用していますこの問題は解決策ですが、リロードを削除するだけです。これはひどい解決策です。なぜこのJSイベントはこのように機能していますか?

ありがとうございます!

+0

私は似たような困難を抱えていますが、進歩はありましたか? – tsusanka

+0

私の解決策は、単にサイトからFBログアウト機能を削除することでした。とにかく私のサイトからFBのログアウトを望んでいない人もいるかもしれません(とFBが考えているのかもしれません)。代わりにFB資格情報に触れない自分のサイトの直接ログアウトを許可します。私が望むものは、FBを介したユーザーログアウトのログアウトイベントです。そのため、私は自分のサイトに完全にログインしていないことを知っています。つまり、たくさんのajaxを使用して、ユーザーが新しいページを読み込まないFB接続が存在しないと多くの機能が壊れているので、今度はステータスを確認する必要があります。 –

答えて

0

まあ、私はそれを全く誇りに思いませんが、回避策を考え出しました。私はこれらのイベントを使用しています:

FB.Event.subscribe('auth.login', function(response) { 
    setTimeout('document.location.reload()',0); 
}); 
FB.Event.subscribe('auth.logout', function(response) { 
    <? if ($_SESSION['user']['id']): unset($_SESSION['user']); ?> 
    setTimeout('document.location.reload()',0); 
    <? endif; ?> 
}); 

私はセッション内のすべてのユーザー情報とセッションに関する条件を保存するには、ページがループで終わるしませんを確認します。 Facebook Javascript SDK window location reload not working on FirefoxのためにsetTimeoutが使用されています。

$(function() { 
    $('#logoutButton').click(function() { 
     setTimeout('document.location.reload()',0); 
    }); 
}); 

<span id="<?= $user ? "logout" : "login" ?>Button"> 
    <fb:login-button autologoutlink="true"></fb:login-button> 
</span> 

私はFirefoxとChromeでこれをテストし、罰金働いてきた:私はlogoutButtonがクリックされた後、ページを再読み込みするjQueryの機能を追加しましたより 。これは本当の解決策ではありませんが、それはもっと醜い修正:)のようなものですが、私はとにかく投稿することにしました。私は実際には、ほとんどのユーザーがFacebookからログアウトしたくないので、実際には「ログアウト操作」全体を残すことを考えています。

+0

「ほとんどのユーザーがとにかくFacebookからログアウトしました。 "はい、それはまさに私が来た位置です:) –

関連する問題