ダリの雑記:WEBプログラム版

Facebookページにある"すべての"アルバムの写真をPHPで取得する方法

前回は特定のアルバムのみの写真を取得する方法を記述しました。

今度は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]

サンプルを実行する

なお、結構表示まで時間がかかります。

モバイルバージョンを終了