0

ユーザーがFacebookにログインしている場合、MVCアプリケーションが最初に検出されます:\

function isLoggedIn(callback, param1) {
    window.FB.getLoginStatus(function (response) {
        if (response.status === 'connected') {
            updateUser(response.authResponse);
            callback(param1);
        } else {
            login(callback, param1);
        }
    });
}

ユーザーが接続していない場合は、この機能を使用してログインします。

function login(callback, success) {
    window.FB.login(function (response) {
        if (response.authResponse) {
            updateUser(response.authResponse, callback, success);
            callback(success);
        } else {
            callback(null);
        }
    });
}

さらに、ステータスの変更をサブスクライブしました。

FB.Event.subscribe('auth.authResponseChange', function (response) {
        if (response.status === 'connected') {
            top.location.href = top.location.href;
          //window.location.reload();
        }
        if (response.status != 'connected' && response.status != 'not_authorized') {
            updateUser(null);
        }
    });

サーバーでFacebookSignedRequestを取得するには、ユーザーログイン後にページを更新する必要があります。

top.location.href = top.location.hrefおよびwindow.location.reload()が機能していません...提案:)

4

1 に答える 1

0

location.reload()動作します。

そうでない場合は、コードが実行されないか、グローバルlocation変数をどこかで上書きしました。

于 2012-05-24T18:05:23.567 に答える