2011-12-03 22 views

回答

0

從技術上講,如果用戶仍然在您的網站上,您可以做到這一點,但如果在Facebook的網站上,那麼他們可以自動在他們的代碼中提供重定向指令。實施這個應該給你一個關於如何讓用戶回到你的網站的基本想法。

  $siteurl = 'http://www.mysiteexample.com'; 
     if (isset($_REQUEST['redirect_to'])) { 
         $redirect_to = $_REQUEST['redirect_to']; 

        } else { 

          // 
          $redirect_to = 'siteurl' .'/'.$_SERVER["REQUEST_URI"]; 


        } 
0

根據Facebook的認證頁面。如果用戶拒絕訪問,他們將被重定向到redirect_uri並顯示錯誤。你可以檢查錯誤是否存在並重定向到主頁。

如果用戶按下不允許,您的應用程序未被授權。基於OAuth的認證對話框將重定向(通過HTTP 302),用戶的瀏覽器給您,出現以下錯誤信息REDIRECT_URI參數傳遞的網址:

https://developers.facebook.com/docs/authentication/

4

正如@abraham已經提到,用戶拒絕也重定向到你的redirect_uri,你所要做的就是檢查用戶是否拒絕了權限。

以下是當用戶拒絕權限時,Facebook如何重定向到您的網址,即redirect_uri。

的http:// YOUR_URL ERROR_REASON = user_denied & 錯誤= ACCESS_DENIED & ERROR_DESCRIPTION = +的用戶+否認+您+請求。

因此,在你的代碼,你可以檢查error和/或error_reason和/或error_description字段在URL中設置,然後你想,當用戶拒絕做任何具體行動。
一些代碼來幫助你:

if(isset($_REQUEST['error'])){//ok some error has occurred from Facebook 
    if(isset($_REQUEST['error_reason']) && $_REQUEST['error_reason']=='user_denied'){// ok so the error has occurred coz the user denied permissions! 
    // a lot of apps render a static page explaining why it needs the permission it has asked for, you can do the same here! 
    // more code 
    } 
} 

// rest of you code ... 

希望這有助於。

+0

嗨。我在我的php應用程序中使用了你的代碼。當用戶首先拒絕權限時,它可以正常工作,我可以再次將用戶重定向到請求權限。但是,如果用戶接受權限,則用戶會在Facebook和我的應用畫布網址之間不斷重定向。任何想法爲什麼發生這種情況? – ASHUTOSH

+0

@ASHUTOSH如果用戶接受,那麼url不會包含'$ _REQUEST ['error']',而我的代碼只處理該行爲,所以你的代碼中必須有其他錯誤。你問過關於這個問題的具體問題嗎?如果您願意,我會很樂意查看它,回答您的問題鏈接。沒有看到你的代碼很難說什麼。我只是猜測 –

+0

以下是該問題的鏈接:http://stackoverflow.com/questions/11343578/redirection-between-facebook-and-my-app-canvas-never-stops – ASHUTOSH

相關問題