我已经提出了一个允许用户使用他们的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 :(得分:3)
根据api,它会将用户重定向到您提供的页面:http://YOUR_URL?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request。
在您重定向的页面中,检查url参数“error” 除了成功之外,还应该有一个url参数“code”,你应该在继续
之前验证它if (isset($_GET['error'])) {
header('Location: URL_TO_GO_IF_FAILED');
} else {
// ... whatever you were doing before
}