我正在实施与网站的Facebook集成。如果用户拒绝Facebook权限,我该如何将它们重定向回我的网站?
答案 0 :(得分:4)
由于@abraham已经提到用户拒绝也会重定向到你的redirect_uri,你所要做的就是检查用户是否已经拒绝了权限。
以下是当用户拒绝权限时,facebook如何重定向到您的网址,即redirect_uri。
的http:// ?YOUR_URL ERROR_REASON = user_denied&安培; 误差= ACCESS_DENIED&安培; ERROR_DESCRIPTION = +的用户拒绝+ + +您的请求
因此,在您的代码中,您可以检查网址中是否设置了error
和/或error_reason
和/或error_description
字段,然后执行您要执行的任何特定操作当用户否认时。
一些代码可以帮助您:
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 ...
希望这有帮助。
答案 1 :(得分:0)
从技术上讲,如果用户仍然在您的网站上,您可以这样做,但如果在Facebook的网站上,他们可以自动在他们的代码中提供重定向指令。实现这一点应该为您提供有关如何让用户返回您的网站的基本想法。
$siteurl = 'http://www.mysiteexample.com';
if ( isset( $_REQUEST['redirect_to'] ) ) {
$redirect_to = $_REQUEST['redirect_to'];
} else {
//
$redirect_to = 'siteurl' .'/'.$_SERVER["REQUEST_URI"];
}
答案 2 :(得分:0)
根据Facebook的身份验证页面。如果用户拒绝访问,他们将被重定向到您的redirect_uri并出现错误。您可以检查错误是否存在并重定向到主页。
如果用户按下“不允许”,则表示您的应用未获得授权。 OAuth对话框将(通过HTTP 302)用户的浏览器重定向到您在redirect_uri参数中传递的URL,并显示以下错误信息: