Загрузите пользователя facebook, если вы только зарегистрировались в facebook php sdk

Я хочу получить текущую учетную запись пользователя facebook в php sdk. Вот что я пробовал:

$facebook = new \Facebook(array( 'appId' => 'XXXXXXXXXXX', 'secret' => 'XXXXXXXXXXXXXXXXXXXXX', )); $user = $facebook->getUser(); var_dump($user); if ($user) { $logoutUrl = $facebook->getLogoutUrl(); echo $logoutUrl; } else { $loginUrl = $facebook->getLoginUrl(); echo $loginUrl; } 

Когда я загружаю страницу с указанным выше кодом, я получаю loginUrl, хотя я зарегистрирован в facebook. Только когда я загружаю $ loginUrl в браузере, я могу получить пользователя facebook.

Как получить текущий пользователь при первой загрузке этой страницы?

Solutions Collecting From Web of "Загрузите пользователя facebook, если вы только зарегистрировались в facebook php sdk"

Я получаю loginUrl, хотя я зарегистрирован в facebook.

Конечно, вы делаете – вход в facebook.com – это нечто совершенно иное, чем вход в ваше приложение .

Только когда я загружаю $ loginUrl в браузере, я могу получить пользователя facebook.

Это потому, что после этого пользователь вошел в ваше приложение.

Как получить текущий пользователь при первой загрузке этой страницы?

Только для пользователей, которые подключились к вашему приложению уже в какой-то момент раньше, используя JavaScript SDK.

Похоже, вы хотите отобразить текущего пользователя, если он не одобрил ваше приложение, чтобы получить доступ к его информации.

Это невозможно. Зачем?

  1. Использование API Facebook требует токена.
  2. Токен специфичен для пользователя, это означает, что пользователь Facebook должен подключиться.
  3. Единственный способ подключения пользователя к Facebook – перейти на Facebook.com, а затем ввести его учетные данные. Поскольку вы согласны с этим, вы поймете, что ваш сайт должен создать ссылку для перенаправления на Facebook.com.
  4. Пользователь нажимает на ссылку и перенаправляется в FB. После подключения к его учетной записи он должен разрешить вашему приложению получать доступ к его информации. Если это сделано, цикл закрывается, когда Facebook.com успешно возвращает токен доступа.

Если у вас уже есть токен доступа, вы не можете обойти шаг входа. Таким образом, вы должны использовать getLoginUrl() .