2011-08-02 31 views
0

嗨,大家好,這一個讓我生氣了2天吧!facebook oauth在用戶確認應用程序後在iframe之外重定向

當我發送用戶確認應用程序並確認後,facebook將它們重定向到我自己的url(應用程序url),並通過這樣做打破IFRAME! 我嘗試了一切,我也嘗試將用戶重定向到我自己的腳本,然後手動重定向用戶,但也失敗了,因爲用戶通過位於Facebook頁面中的「應用程序選項卡」使用我的應用程序進入應用程序。

有很多關於這個網絡的帖子,但我還沒有找到解決方案... 如果有人可以幫助我,這將是偉大的!

Regards, Moti。

+0

你可以粘貼一個你如何授權用戶的代碼示例嗎? – jBit

+0

是的,在這裏:$ logoutUrl = $ facebook - > getLoginUrl(); \t echo(「」); – user310707

+0

您使用的是什麼版本的PHP SDK? – jBit

回答

0

此方法不適用於您。您最好使用JavaScript來處理登錄和身份驗證。

<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

相關問題