Вопрос регистрации в Facebook - PullRequest
       1

Вопрос регистрации в Facebook

1 голос
/ 24 августа 2011

Я показываю регистрационный iframe на Facebook в толстой коробке (Iframe внутри iframe).

(Если пользователь не вошел в систему, кнопка будет показана для входа или же форма регистрации будет показана непосредственно.)

Crom кеширует данные. Из-за этого после входа в Facebook он показывает ошибку как «неверный client_id» (он не показывает мне регистрационную форму). Если я перезагрузить родительский iframe т.е. Форма регистрации окна «Толстый ящик» показывает отлично.

Я хочу перезагрузить iframe Thickbox после входа в Facebook. Я могу получить этот контроль как-нибудь? Есть ли для этого код JS?

Вот мой код

<div id="content">
    <div class="reg-cont">
        <div id="fb-root"></div>
        <script type="text/javascript">
            window.fbAsyncInit = function() {
                FB.init({
                    appId   : '<?php echo $this->facebookAppId; ?>',
                    status  : true,
                    cookie  : true,
                    xfbml   : true
                });
                FB.getLoginStatus(function(response) {
                    if (response.status == "connected") {
                        window.location = "/facebook-login?facebook_uid=" + response.session.uid;
                    }
                });
            };
        </script>
        <fb:registration
            fields="[
                             {'name':'name'},
                             {'name':'email'},
                             {'name':'church', 'description':'Home Church',  'type':'select',  'options':<?php echo str_replace('"', "'", $this->church); ?>, 'default':'none'},
                             {'name':'host',   'description':'Check this box if you are hosting your small group', 'type':'checkbox'}
                   ]"
            redirect-uri="http://<?php echo $_SERVER['SERVER_NAME']; ?>/User/index/create-facebook-account"
            fb_only="true"
            width="530">
        </fb:registration>
    </div>
</div>

1 Ответ

0 голосов
/ 30 августа 2011

Перезагрузить целевой iframe при входе в систему.Вам нужно будет установить ссылку и имя фрейма ниже

    FB.Event.subscribe('auth.login', function(response) {
       top.frames['YourFrameName'].location.href = 'http://example.com/';
    });

    <script type="text/javascript">
        window.fbAsyncInit = function() {
            FB.init({
                appId   : '<?php echo $this->facebookAppId; ?>',
                status  : true,
                cookie  : true,
                xfbml   : true
            });
            FB.getLoginStatus(function(response) {
                if (response.status == "connected") {
                    window.location = "/facebook-login?facebook_uid=" + response.session.uid;
                }
            });
    FB.Event.subscribe('auth.login', function(response) {
    top.frames['YourFrameName'].location.href = 'http://example.com/';
    });
        };
    </script>
...