我已经开发同类应用中的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