0

Как уже упоминалось в названии, у меня есть приложение, и когда отображается диалог авторизации с запросом на разрешения, независимо от того, нажата ли кнопкаили Don't Allow, они все еще перенаправляются на страницу холста приложения.Facebook PHP SDK - независимо от того, нажимают ли пользователи «Разрешить» или «Не разрешать», они все еще принимаются на страницу холста приложения?

Я понимаю, что это связано с 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

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

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

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

Вам необходимо обработать это на странице перенаправления.

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

отлично, спасибо за вашу помощь. – martincarlin87