Zend-Framework で同じ種類のアプリケーションを開発しました。oAuth 2.0 で Facebook/PHP-SDK を使用しました。
この場合、特定のユーザーのデータベースにアクセス トークンを保存する必要があります。そのアクセス トークンを使用して、任意のデータを取得したり、投稿したりできます。はい、そのためには、Facebook アプリに対してユーザーから必要な許可を与える必要があります。
アプリケーションでアクセス トークンを取得し、拡張してデータベースに保存するために使用した 2 つの関数を次に示します。
/**
* 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;
}
それが役に立てば幸い。