Facebook PHP SDK(從v3.0開始)分爲兩個主要部分,Facebook
類用於與Facebook API和抽象類BaseFacebook
進行交互。 Facebook
類擴展了這個抽象類。抽象類實現了Facebook的核心oAuth API,提供了實例化新對象時使用的所有面向公衆的功能。
與會話處理相關的功能是在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
使用四個鍵被存儲在持久數據:「州」,「代碼」,「ACCESS_TOKEN」和「USER_ID」。
「狀態」用於確定oAuth請求的身份驗證中的當前狀態。檢索「代碼」後不會使用它。
「代碼」用於從Facebook中檢索「access_token」。它在檢索'access_token'後不會被使用。
'access_token'用於後續對Facebook oAuth API的請求。我相信只有2個小時左右。
'user_id'是用戶的Facebook ID。該值對於該用戶是唯一的並且是持久的。它可以無限期地保存。
此信息在當前版本的SDK中仍然有效(截至撰寫本文時爲止,版本3.2.2)。
有關Facebook PHP oAuth登錄流程的更多信息,請參閱the Facebook developer page。
鏈接已死亡。 – AndreKR