2011-10-26 245 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