Facebook connect и аутентификация пользовательского PHP-приложения

#php #facebook

#php #Facebook

Вопрос:

У меня есть собственное php-приложение с ограниченной частью, которое могут использовать только аутентифицированные пользователи. Следуя инструкциям от, мне удалось создать приложение FB и включить вход по электронной почте, используемой для входа в систему FB.

хорошо, но что делать дальше и как подключиться к моему веб-приложению и системе приложений для входа в систему FB? я предполагаю, что каким-то образом я должен получать информацию из приложения facebook и … делать что?

не могли бы вы, пожалуйста, дать мне несколько идей, как закончить это? заранее благодарю вас!

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

1. (чтобы ответить неоднозначно, но …) если у вас в базе данных есть таблица пользователей, используйте электронную почту, полученную оттуда facebook, в качестве имени пользователя, затем используйте один и тот же пароль для всех ваших пользователей fb (сделайте его длинным и безопасным)

Ответ №1:

В руководстве, которому вы следовали, реализован поток на стороне клиента. Это означает, что все выполняется в браузере пользователя, и ваше веб-приложение не может получить (легко) некоторые данные из Facebook.

Вы должны реализовать поток на стороне сервера. Хороший и простой способ сделать это — использовать Facebook PHP SDK (смотрите на github). Таким образом, у вас будет что-то вроде :

 require "facebook.php";
$facebook = new Facebook(array(
    'appId'  => YOUR_APP_ID,
    'secret' => YOUR_APP_SECRET,
));

$user = $facebook->getUser();
  

Если пользователь вошел в систему, то $user это его Facebook ID. Затем вы должны проверить, есть ли у вас действительный токен доступа, выполнив вызов API :

  • Если это не вызывает никаких исключений, значит, у вас есть действительный токен доступа

  • Если это произойдет, то вам придется повторно аутентифицировать пользователя.

Здесь :

 if ($user) {
  try {
    $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $user = null;
  }
}
  

Затем вам нужно отобразить ссылку для входа или выхода из системы :

 <?php if ($user): ?>
    <a href="<?php echo $facebook->getLogoutUrl() ?>">Logout of Facebook</a>
<?php else: ?>
    <a href="<?php echo $facebook->getLoginUrl() ?>">Login with Facebook</a>
<?php endif ?>
  

Когда пользователь вошел в систему и у вас есть действительный токен доступа, вы можете выполнять вызовы API для получения данных из Facebook :

 $user_profile = $facebook->api('/me');
  

Возможно, вы захотите проверить страницу примера Facebook PHP SDK, которая хорошо документирована.

Надеюсь, это поможет.

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

1. не могли бы вы, пожалуйста, обновить ссылки в вашем ответе. теперь они мертвы.