Facebookページを見ると、左のメニューに「写真」という項目があるページをよく見かけます。
その名の通り、アルバムごとに写真をアップし、公開することができるわけですが、このアルバムの写真情報をPHPで取得することができます。
必要なのはPHP5.2以上が動作するサーバ環境(json_decodeがいるので)と、そのアルバムのID情報です。
ためしにFacebook Japanの公式Facebookページにある、アルバム「Facebookスポット」の写真情報を取得し、写真を一覧表示します。
まずアルバムIDですが、「Facebookスポット」アルバムページのURLをご覧ください。
http://www.facebook.com/media/set/?set=a.428510844023.214836.365989369023&type=3
というURLになっています。
いくつか数字の羅列が並んでいますが、必要なのは「a.」から次の「.」までの数字。
つまり「428510844023」です。
これを以下のサンプルプログラムの中にある「$album_id」変数に代入します。
[php]
$album_id = '428510844023'; //アルバムID
$thumb_size_set = 3; //サムネイルのサイズ
$limit=0; //取得したい最大枚数(0とするとデフォルト設定の25枚)
$url = "http://graph.facebook.com/".$album_id."/photos/?limit=".$limit;
$res = file_get_contents($url);
$data_array = json_decode($res, TRUE);
if(!empty($data_array["data"])){
foreach($data_array["data"] as $values){
$thumb_size_count = count($values["images"]);
for($i=$thumb_size_set; $i > 0; $i--){
if($thumb_size_count > $i){
$thumb_size = $thumb_size_count - $i;
break;
}
}
$photo_name = $values["name"];
$photo_link = $values["link"];
$photo_thumb_path = $values["images"][$thumb_size]["source"];
$photo_thumb_width = $values["images"][$thumb_size]["width"];
$photo_thumb_height = $values["images"][$thumb_size]["height"];
echo '
';
}
}
[/php]
もちろん閲覧者がFacebookにログインする必要はありません。
非常に簡単ですね。
※枚数が多くなると重くなるので、キャッシュを取るなどの対策をすることをお勧めします。