Facebook PHP SDK - Независимо от того, нажимают ли пользователи «Разрешить» или «Не разрешать», они все еще добавляются на страницу холста приложения? - PullRequest
0 голосов
/ 22 декабря 2011

Как упоминалось в заголовке, у меня есть приложение, и когда отображается диалог авторизации с запросом разрешений, независимо от того, нажата ли пользователь кнопка Allow или Don'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 на моем домене просто перенаправляет обратно в приложение.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 22 декабря 2011

Он будет перенаправлен на один и тот же URL независимо от того, какая кнопка нажата в диалоге аутентификации, но с другими параметрами GET:

Если пользователь отказывает в доступе к вашему приложению, он должен поставить следующие параметры в URL

  • ERROR_REASON = user_denied
  • ошибка = ACCESS_DENIED
  • error_description = Пользователь + + + отрицал ваш запрос +

Вы должны справиться с этим на своей странице перенаправления.

if(isset($_GET['error']))
{
    die($_GET['error_description']);
}
else
{
    // ... redirect as usual
} 
...