前回は特定のアルバムのみの写真を取得する方法を記述しました。
今度はFacebookページにあるすべてのアルバムの写真を取得する方法です。
必要なのはPHP5.2以上が動作するサーバ環境(json_decodeがいるので)と、そのFacebookページのID情報です。
ためしにFacebook Japanの公式Facebookページにあるすべてのアルバムの写真情報を取得し、写真を一覧表示します。
まずFacebookページIDですが、前回同様「Facebookスポット」アルバムページのURLをご覧ください。
http://www.facebook.com/media/set/?set=a.428510844023.214836.365989369023&type=3
今度は最後の「.」から「&type=3」までにある数字を取得してください。
つまり「365989369023」です。
これがFacebookIDです。
これを以下のサンプルプログラムの中にある「$fbpage_id」変数に代入します。
[php]
$fbpage_id = '365989369023'; //FacebookページID
$thumb_size_set = 3; //サムネイルのサイズ
//アルバム情報を取得する
$albums_url = "http://graph.facebook.com/".$fbpage_id."/albums/";
$albums_res = file_get_contents($albums_url);
$albums_array = json_decode($albums_res, TRUE);
if(!empty($albums_array["data"])){
foreach($albums_array["data"] as $albums_values){
//アルバム内の写真情報を取得する
$album_id = $albums_values["id"];
$photos_url = "http://graph.facebook.com/".$album_id."/photos/";
$photos_res = file_get_contents($photos_url);
$photos_array = json_decode($photos_res, TRUE);
if(!empty($photos_array["data"])){
$albums_link = $albums_values["link"];
$albums_name = $albums_values["name"];
echo '
'.$albums_name.'
'."\r\n";
foreach($photos_array["data"] as $photos_values){
$thumb_size_count = count($photos_values["images"]);
for($i=$thumb_size_set; $i > 0; $i--){
if($thumb_size_count > $i){
$thumb_size = $thumb_size_count - $i;
break;
}
}
$photo_name = $photos_values["name"];
$photo_path = $photos_values["link"];
$photo_thumb_path = $photos_values["images"][$thumb_size]["source"];
$photo_thumb_width = $photos_values["images"][$thumb_size]["width"];
$photo_thumb_height = $photos_values["images"][$thumb_size]["height"];
echo '
'."\r\n";
}
}
}
}
[/php]
なお、結構表示まで時間がかかります。