2011-10-26 277 views
1

我已經提出了一個允許用戶使用他們的Facebook賬戶登錄的應用程序。當被問及是否允許我的應用程序允許訪問他們的Facebook賬戶中的某些細節時,一切都有效。但是,當他們點擊「拒絕」時,它只是保持循環,並不斷詢問他們是否想要授予應用程序權限。當他們點擊「拒絕」而不是連續循環並詢問相同的問題時,我如何才能讓它進入另一個頁面?拒絕Facebook身份驗證

我試過看文檔,但似乎無法找到我以後。根據

<?php 

session_start(); 

require("facebook.php"); 

$facebook = new Facebook(array(
    'appId' => 'app id goes here', 
    'secret' => 'secret goes here', 
    'cookie' => true 
)); 

$session = $facebook->getSession(); 

if(!empty($session)) { 

    try{ 

     $uid = $facebook->getUser(); 
     $user = $facebook->api('/me'); 

     $_SESSION['returned'] = array("id" => $uid, "name" => $user["name"], "access_token" => $session['access_token']); 

     header('Location: returned.php'); 
     exit; 

    } catch (Exception $e) { 

     echo "something is wrong"; 
     exit; 

    } 

} else { 

    $login_url = $facebook->getLoginUrl(); 
    header("Location: ".$login_url); 

} 
+0

取消授權的URL,然後驗證存在...... –

+0

檢查@uncreative的解決方案,它應該有所幫助。 incase它不起作用,請把這裏的一些代碼放在這裏,具體是處理facebook身份驗證的腳本,以便我們可以幫助您進行調試:) –

+0

@DroidUser,請參閱更新後的問題,它包含代碼。 – oshirowanen

回答

3

:,執行以下

之前請求許可,然後如果我點擊「不允許」,它只是不斷通過下面的代碼循環,直到我點擊「允許」 api它會將用戶重定向到您提供的頁面:http://YOUR_URL?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request

在您重定向到檢查URL參數「錯誤」 除了成功的頁面應該有一個URL參數「代碼」,你應該繼續

if (isset($_GET['error'])) { 
    header('Location: URL_TO_GO_IF_FAILED'); 
} else { 
    // ... whatever you were doing before 
} 
+0

請參閱更新的問題。包含當前的代碼。 – oshirowanen

+0

我試着在'else'之前將你的提示添加到上面的現有代碼中,但是將'if'更改爲'elseif',並且當我單擊「不允許」時它似乎永遠不會到達它。 – oshirowanen

+0

得到它的工作,我不得不在facebook.php文件中添加網址。 – oshirowanen