2011年9月30日金曜日

FacebookアプリでPHP SDK(v.3.1.1)を使ったバックエンド側処理

FBアプリを作るとき、フロント側とバック側で分けて作るときのサンプルみたいなもの

今回したいのは
フロント側をフラッシュやJSで実装して
通信することでバックエンド側で処理させたい
ということ

使うのはPHP SDK(v.3.1.1)

渡されるのはfacebookのIDのみ
渡される値のnameはidとアプリで個人ごとに発行されるaccess_tokenが必要
ユーザーのセッション内に
fb_(アプリID)_access_token
の名前で入っている
なお認証時に必要なpermissionを取ることを忘れないこと

以下サンプル

require 'facebook.php';//SDK読み込み
//自分のあふりにあわせて変更
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
));

//ユーザーIDなし
if(!$_REQUEST['id']){
//エラー処理
}
//ユーザーID不正
if(!is_numeric($_REQUEST['id'])){
//エラー処理
}
//ユーザー情報取得
try {
$user_profile = $facebook->api('/'.$_REQUEST['userID'],'GET',array('access_token'=>$_REQUEST['accessToken']));
//print_r($user_profile);
} catch (FacebookApiException $e) {
//エラー処理
}
//友達一覧取得
try {
$friends = $facebook->api('/'.$_REQUEST['userID'].'/friends','GET',array('access_token'=>$_REQUEST['accessToken']));
} catch (FacebookApiException $e) {
//エラー処理
}
//写真をアルバムへ
try {
$facebook->api('/'.$_REQUEST['userID'].'/photos','post',array('access_token'=>$_REQUEST['accessToken'],'message' => 'hoge','picture' => '@/some/where/hoge.jpg'));
} catch (FacebookApiException $e) {
//エラー処理
}
//ウォール投稿
try {
$facebook->api('/'.$_REQUEST['userID'].'/feed','post',array('access_token'=>$_REQUEST['accessToken'],'message' => 'hoge'));
} catch (FacebookApiException $e) {
//エラー処理
}