0

如标题中所述,我有一个应用程序,当显示身份验证对话框请求权限时,无论用户是否单击AllowDon't Allow按钮,它们仍会被重定向到应用程序画布页面。

我知道这与该有关,redirect_uri但是有没有办法区分这两个动作以根据单击的按钮执行不同的逻辑?

// Login or logout url will be needed depending on current user state.
else {
     $loginUrl = $facebook->getLoginUrl(array('canvas' => 1,
                                              'fbconnect' => 0,
                                              'display' => 'page',
                                              'redirect_uri' => 'https://www.facebook.com/dialog/oauth?client_id=xxxxxxxxx&redirect_uri=http://www.domain.com/facebook/2011/app1/redirect.php&scope=publish_stream',
                                              'req_perms' => 'publish_stream'));

redirect.php在我的域上只是重定向回应用程序。

谢谢你的帮助!

4

1 回答 1

1

无论在身份验证对话框中按下什么按钮,它都会重定向到相同的 url,但使用不同的 GET 参数:

如果用户拒绝您的应用访问,则应在 url 中放入以下参数

  • error_reason=user_denied
  • 错误=拒绝访问
  • error_description=+用户+拒绝+你的+请求

您需要在重定向页面中处理此问题。

if(isset($_GET['error']))
{
    die($_GET['error_description']);
}
else
{
    // ... redirect as usual
} 
于 2011-12-22T10:34:27.480 回答