Аутентификация Facebook с использованием PHP-SDK

Я пробовал пару дней без везения, мне удалось использовать example.php, который поставляется с PHP-SDK и отлично работал. Мне просто нужно сохранить возвращенный сеанс и использовать его позже, чтобы я мог получить доступ без повторной аутентификации.

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

Вот ссылка на предыдущий вопрос с образцами кода.

Facebook OAuth извлекает информацию на основе сохраненной сессии

Пожалуйста посоветуй?

Related of "Аутентификация Facebook с использованием PHP-SDK"

Обновление: автономный доступ в настоящее время не рекомендуется . Вместо этого используйте что-то другое.


Если вы хотите использовать токен доступа пользователя даже после того, как он вышел из вашего приложения, вам необходимо запросить разрешение offline_access .

С помощью PHP PHP SDK v3 ( см. Github ) это довольно просто. Чтобы зарегистрировать кого-либо с разрешением offline_access , вы спрашиваете его, когда вы создаете URL-адрес для входа. Вот как вы это делаете.

Получить токен доступа к сети

Сначала вы проверяете, зарегистрирован ли пользователь или нет:

 require "facebook.php"; $facebook = new Facebook(array( 'appId' => YOUR_APP_ID, 'secret' => YOUR_APP_SECRET, )); $user = $facebook->getUser(); if ($user) { try { $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { $user = null; } } 

Если это не так, вы создаете URL-адрес «Войти с Facebook», запрашивающий разрешение offline_access :

 if (!$user) { $args['scope'] = 'offline_access'; $loginUrl = $facebook->getLoginUrl($args); } 

А затем отобразите ссылку в шаблоне:

 <?php if (!$user): ?> <a href="<?php echo $loginUrl ?>">Login with Facebook</a> <?php endif ?> 

Затем вы можете получить токен доступа и сохранить его. Чтобы получить его, звоните:

 if ($user) { $token = $facebook->getAccessToken(); // store token } 

Использовать токен доступа

Использовать токен доступа, когда пользователь не вошел в систему:

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

И теперь вы можете совершать вызовы API для этого пользователя:

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

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