2011-08-24 4 views
1

두꺼운 상자 (iframe 내부 iframe)에 페이스 북 등록 iframe이 표시됩니다.Facebook 등록 문제

(사용자가 로그인하지 않은 경우, 버튼 로그인 또는 그렇지 않으면 등록 양식 직접 도시한다 도시한다.)

Crom 데이터를 캐싱한다. 그 때문에 페이스 북에 로그인 한 후 "invalid client_id"와 같은 오류가 표시됩니다 (등록 양식을 보여주지 않음). 부모 iframe 즉 다시로드하면. thickbox 창 등록 양식은 잘 보여줍니다.

facebook에 로그인 한 후 thickbox iframe을 다시로드하고 싶습니다. 내가 어떻게이 통제를받을 수 있니?. 거기에 사용할 수있는 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> 

답변

0

다시로드 로그인에 타겟 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> 
+0

이 아래 링크 및 프레임 이름을 설정해야합니다. 사용자가 로그인 한 후에/등록 블록을 표시해야합니다. – Sahal