我已經開發同類應用中的Zend框架的東西。我用的Facebook/PHP-SDK使用OAuth 2.0。
在這種情況下,你需要保存特定用戶的數據庫訪問權限,並使用該訪問令牌可以獲取任何數據以及發佈到。是的,因爲您需要授予用戶對您的Facebook應用程序的必要權限。在我的應用程序中用來獲取訪問令牌的兩個函數,擴展它並存儲在數據庫中。
/**
* Getting User Acess Tocken , extended it and save it in to database......
*/
public function getAccessToken($user_id,$fb_account_id)
{
$access_token=$this->facebook->getAccessToken();
$extended_access_token=$this->getExtendedAccessToken($access_token);
/**
* To save Access tocken and other necessary option
*/
$usr_bus_model = new Application_Model_UserBusinessAccounts;
$usr_bus_model->loadAccount($user_id,'Facebook',(int)$fb_account_id);
$usr_bus_model->details=$extended_access_token;
$usr_bus_model->save();
return $extended_access_token;
}
/**
* Exrending User Acess Tocken.....
*/
public function getExtendedAccessToken($access_token)
{
$token_url="https://graph.facebook.com/oauth/access_token";
$params=array('client_id'=>self :: appId,'client_secret'=>self :: appSecretId,'grant_type'=>'fb_exchange_token','fb_exchange_token'=>$access_token);
$response = $this->curl($token_url,$params);
$response = explode ('=',$response);
$response = explode ('&',$response[1]);
$response = $response[0];
return $response;
}
希望它有幫助。
我發現了一個可能存儲令牌(用於離線訪問)的Facebook數據庫表。你使用這種方法嗎?存儲脫機訪問令牌後,它是否過期?或不要永遠過期? – KazuNino 2012-07-27 15:37:49
我已通過getAccessToken() - Facebook對象獲取訪問令牌。是的,offline_access權限將在十月份被刪除,因此您可以更好地使用此facebook對象。有一種簡單的方法可以在接下來的60天內擴展此訪問令牌。因此當用戶點擊以顯示流時,您可以明確地擴展該特定用戶的訪問令牌。爲了您的幫助,我將編輯帖子,並提供兩個函數,我如何提取訪問令牌並擴展訪問令牌並將其存儲在數據庫中。 – 2012-07-28 03:58:06