2011-08-02 5 views
0

안녕하세요,이 사람은 나를 이틀 동안 미치게했습니다!facebook 사용자가 애플리케이션을 확인한 후 oauth iframe 외부로 리디렉션

사용자가 응용 프로그램을 확인하고 확인하면 페이스 북에서 내 자신의 URL (응용 프로그램 URL)로 리디렉션하고 IFRAME을 깨뜨립니다 !! 나는 모든 것을 시도했고, 또한 사용자를 수동으로 리디렉션하는 자체 스크립트로 사용자를 리디렉션하려고했으나 사용자가 내 응용 프로그램을 사용하는 페이스 북 페이지에있는 "응용 프로그램 탭"을 통해 응용 프로그램을 입력 했으므로 실패했습니다.

그물에 이것에 관하여 많은 포스트가있다 그러나 나는 아직 해결책을 찾아 냈다 ... 누군가가 저를 도울 수있는 경우에 중대 할!

감사합니다. Moti.

+0

사용자에게 권한을 부여하는 방법에 대한 코드 예를 붙여 넣을 수 있습니까? – jBit

+0

예, 여기 : $ logoutUrl = $ facebook -> getLoginUrl(); \t echo (""); – user310707

+0

어떤 PHP SDK 버전을 사용하고 있습니까? – jBit

답변

0

이 방법은 효과가 없습니다. 당신은 자바 스크립트를 사용하여 로그인과 인증을 처리하는 것이 더 낫다.

<div id="fb-root"></div> 
<script> 
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId : 'YOUR_APP_ID', 
      session : { VALID_SESSION_DATA }, // don't refetch the session if PHP already has it 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the session 
      xfbml : true // parse XFBML 
     }); 

     }; 

     (function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
     }()); 

     function login() { 
      FB.login(
       function(response) { 
        if (response.session) { 
         if (response.perms) { 
          // user is logged in, and granted any permissions 
         } else { 
          // user is logged in, but did not grant any permissions 
         } 
        } else { 
         // user is not logged in 
        } 
       }, {perms:'publish_stream'} 
      ); 
     } 
</script> 
+0

네, 알아요.하지만 "top.location"을 사용하지 않고 응용 프로그램 권한 부여 창으로 사용자를 리디렉션 할 수 없습니다. 그렇지 않으면 오류가 발생합니다. – user310707

+0

아니요, 제가 시험해 보도록 내버려 두지 않았고 그것이 어떻게 진행되었는지 알려드립니다. – user310707

+0

여전히 같은 결과가 나오지 않으면 리디렉션을 통해 IFrame이 삭제되고 빈 페이지에 응용 프로그램이 열립니다 .. – user310707