Включение входа в Facebook, использование Facebook php-SDK (v.3.0.0), с сессиями и куки - PullRequest
6 голосов
/ 05 августа 2011

Я новичок в PHP, и мне было очень трудно разобраться в системе входа в Facebook.

Я загрузил три файла src / из github (https://github.com/facebook/php-sdk/). Я попытался использовать файл example.php, чтобы начать работу. Однако я не уверен, что с ним делать.

Для тех, кто не знаком с файлом, вот копия файла example.php с некоторыми удаленными стилями:

<code>require '../src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => '...',
  'secret' => '...',
));
$user = $facebook->getUser();
if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}
$naitik = $facebook->api('/naitik');
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <body>
    <?php if ($user): ?>
      <a href="<?php echo $logoutUrl; ?>">Logout</a>
    <?php else: ?>
      <div>
        Login using OAuth 2.0 handled by the PHP SDK:
        <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
      </div>
    <?php endif ?>

    <h3>PHP Session</h3>
    <pre><?php print_r($_SESSION); ?>
<? php if ($ user):?>

Вы

image/picture">

Ваш пользовательский объект (/ me)

<?php print_r($user_profile); ?>
<? php else:?> Вы не подключены. <? php endif?>

Публичный профиль Naitik

image <? php echo $ naitik ['name']; ?>

Вот вопросы, которые у меня есть по этому поводу:

1) Как насчет файлов cookie? Я хочу, чтобы пользователь мог войти на мой сайт после повторного открытия своего браузера.

2) Какой минимальный минимум мне нужен, чтобы получить этот файл example.php для проверки / регистрации пользователя, начать сеанс, сохранить сеанс в файле cookie, получить идентификатор пользователя fb пользователя, имя fb, имя fb картинка, а список фб друзей?

3) В файлах src / есть один файл «fb_ca_chain_bundle.crt», и я совершенно не знаю, что такое файл, и я не уверен, нужен ли он вообще. Какова его цель?

4) Строка $naitik = $facebook->api('/naitik'); - это "naitik", имя пользователя этого человека - поэтому, если я введу facebook.com/naitik, он покажет его общедоступный профиль? заменяет "/ naitik" на "/ me", что даст общедоступный профиль человека, вошедшего в facebook?

5) Как получить токен доступа и как использовать его в моем коде?

6) Когда я создаю сеанс для пользователя и файл cookie, чтобы пользователь вошел в систему после повторного открытия браузера, что именно я должен хранить в своих сеансах и файлах cookie?

Я знаю, что это много вопросов, но я просмотрел много учебников онлайн, и ни один из них не проделал хорошую работу, объясняя это, в основном потому, что они просто ссылаются на файлы Github PHP-SDK. Кроме того, большинство из них объясняют предыдущую версию PHP-SDK. Мы ценим любую помощь с любыми вопросами.

1 Ответ

7 голосов
/ 14 августа 2011

Чтобы ответить на ваши вопросы

1) А как насчет куки?

Вы просто добавляете параметр в инициализацию Facebook.Измените его на следующее

$facebook = new Facebook(array(
  'appId'  => '...',
  'secret' => '...',
  'cookie' => true,
));

2) Какой минимальный минимум мне нужен, чтобы извлечь из этого файла example.php значение ....

Не все, что вам нужно, находится в этомпример.В верхней части кода показано, как подключиться и проверить пользователя.Вторая половина просто сбрасывает их основные детали и детали наитика.В остальном вам нужно посмотреть дальше.

3) В файле src / есть один файл 'file fb_ca_chain_bundle.crt,'

Цель этого файла - предложить обходной путь дляОшибка CURL 60. Прочитайте это:

http://www.takwing.idv.hk/blog/2011/php-sdk-demystified-%E2%80%93-how-curl-error-60-is-handled/

4) Строка $ naitik = $ facebook-> api ('/ naitik');является ли "naitik" именем пользователя этого человека - поэтому, если я введу facebook.com/naitik, он покажет его общедоступный профиль?заменяет "/ naitik" на "/ me", чтобы получить общедоступный профиль человека, вошедшего в Facebook?

Точно верно

5) Как получить токен доступа и какиспользовать его в своем коде?

$ facebook-> getAccessToken ();

Вы добавляете некоторые вызовы метода, но это не обязательно для всех.

6) Когда я создаю сеанс для пользователя и файл cookie, чтобы пользователь вошел в систему после повторного открытия браузера, что именно я должен хранить в своих сеансах и файлах cookie?

Идет SDK Facebookпозаботиться об этом.Вам просто нужно будет хранить любую дополнительную информацию о пользователе, которого требует ваше приложение.

...