1

次のようなコードがあります。

            checkStatus: function() {

            var self = this;

            FB.getLoginStatus(function(response) {
                if (response.status === 'connected') {

                    self.isPage = false;
                    dojo.publish('fb/loginStatus/connected', response.authResponse);

                    if (self.UserRecord === null) {

                        self.buildAll(response.authResponse);

                    } else if (self.UserRecord.user_fid !== response.authResponse.userID){

                        self.clearAll();
                        setTimeout(function(){ self.buildAll(); }, 100);
                    }

                } else {

                    if (response.status === 'not_authorized') {
                        dojo.publish('fb/loginStatus/logged', response);
                    } else {

                        dojo.publish('fb/loginStatus/notLogged', response);
                    }
                }
            },true);
        },

ユーザーがFacebookページとしてログに記録されたアプリを入力するまで、Fb.getLoginStatusはコールバックを起動しません。

そして私の質問は、アプリケーションでこのケースを処理するためにどのように検出するか、または何か他のことをするかです。

乾杯、ポール

4

1 に答える 1

0

これはバグだと思います。昨年、ユーザーがサンドボックスモードであったときに、FB.getLoginStatusにも同様の問題がありました。とにかく、次の方法でユーザーを通常のユーザーに戻すことができます。

FB.login(function(response) {
    // response handler
});

「Facebookを別のユーザーとして使用しています」というプロンプトが表示され、標準ユーザーに戻すように求められます。

もう1つのオプションは、特定のタイムアウト後にFacebookソーシャルウィジェットの1つを表示することです(ボタンなど)。いいねボタンを表示する代わりに、「このソーシャルウィジェットを使用するには通常のユーザーに戻る」というリンクが表示されます。

これらの提案がお役に立てば幸いです。

于 2012-04-26T13:21:42.090 に答える