Facebook PHP SDK (начиная с версии 3.0) разделен на две основные части: класс Facebook
, используемый для взаимодействия с API Facebook и абстрактным классом BaseFacebook
.Класс Facebook
расширяет этот абстрактный класс.Абстрактный класс BaseFacebook
реализует базовый API oAuth для Facebook, предоставляя все общедоступные функции, используемые при создании экземпляра нового объекта Facebook
.
Функции, связанные с обработкой сеанса, - это абстрактные функции, которые реализованы вFacebook
класс.Необходимо реализовать четыре функции:
/**
* Stores the given ($key, $value) pair, so that future calls to
* getPersistentData($key) return $value. This call may be in another request.
*
* @param string $key
* @param array $value
*
* @return void
*/
abstract protected function setPersistentData($key, $value);
/**
* Get the data for $key, persisted by BaseFacebook::setPersistentData()
*
* @param string $key The key of the data to retrieve
* @param boolean $default The default value to return if $key is not found
*
* @return mixed
*/
abstract protected function getPersistentData($key, $default = false);
/**
* Clear the data with $key from the persistent storage
*
* @param string $key
* @return void
*/
abstract protected function clearPersistentData($key);
/**
* Clear all data from the persistent storage
*
* @return void
*/
abstract protected function clearAllPersistentData();
Эти классы используются для получения, установки и очистки любых постоянных данных, используемых сеансом.В стандартном Facebook
классе они используют переменную PHP $_SESSION
для хранения этих данных.Реализуя эти функции в вашем собственном классе, который расширяет BaseFacebook
, можно изменить на любой тип обработки сеанса, который вы пожелаете.
В BaseFacebook
есть четыре ключа, которые хранятся в постоянных данных:«state», «code», «access_token» и «user_id».
«State» используется для определения текущего состояния при аутентификации запроса oAuth.Он не используется после получения «кода».
«Код» используется для получения «access_token» из Facebook.Он не используется после получения «access_token».
«access_token» используется в последующем запросе к API oAuth Facebook.Я считаю, что это хорошо только в течение 2 часов.
'user_id' - это идентификатор пользователя Facebook.Это значение является уникальным для этого пользователя и постоянным.Это может быть сохранено на неопределенный срок.
Эта информация все еще действительна в текущей версии SDK (на момент написания v3.2.2).
См. страницу разработчика Facebook для получения дополнительной информации о потоке входа в Facebook PHP oAuth.