如果用户拒绝Facebook权限,则重定向到网站的登录页面

时间:2011-12-03 02:08:25

标签: facebook

我正在实施与网站的Facebook集成。如果用户拒绝Facebook权限,我该如何将它们重定向回我的网站?

3 个答案:

答案 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,并显示以下错误信息:

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