Как Facebook реагирует, когда кто-то отказывает в разрешении на ресурс?

#php #facebook

#php #Facebook

Вопрос:

Я использую приведенный ниже код для своего приложения. Если я откажу в разрешении, я все равно смогу получить доступ к приложению, но это не должно привести меня к приложению, верно?

Где я ошибаюсь?

  //Facebook Authentication part 
   $user       = $facebook->getUser();

   $loginUrl   = $facebook->getLoginUrl(
    array(
        'scope' => 'publish_stream,read_stream',

    )
 );
  $me = null; 
 // Session based API call.
  if ($session) {
try {
  $uid = $facebook->getUser();
 $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
   error_log($e);
 }
 }


  if (!$user) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
  }
  

Ответ №1:

Я не уверен, что это даст вам ответ, который вы ищете. Но мне просто интересно, знаете ли вы об ожидаемом потоке аутентификации приложения Facebook.

Когда выбрано «Не разрешать», диалоговое окно Facebook перенаправит на:

 http://YOUR_URL?error_reason=user_deniedamp;
 error=access_deniedamp;error_description=The user denied your request.
  

Где YOUR_URL — это параметр redirect_uri, который был указан в URL диалогового окна oauth.

Ознакомьтесь с документами Facebook по аутентификации

Комментарии:

1. : Если вы видите игры zynga, если вы отказываете в доступе, на странице появляется сообщение о том, что пользователь отказал, но я знаю, что facebook делает. Как мне поступить, как zynga one?

2. Вы указываете URI перенаправления, в этом URI проверяется параметр error_reason. Затем предоставьте контент, который вы хотите. Zynga не сделала ничего волшебного..

Ответ №2:

Я думаю, что если вы нажмете на кнопку «Не разрешать», это приведет вас на страницу приложения, но если вы выполнили действие «Не разрешать» в своем коде, вы можете перенаправить его куда угодно