Info

自分の個人サイトにFlickrの写真を取り込もうとしてFeedを探してみたが、少ない!情報量も少なくて、困ったな~と思った時FlickrのAPIを思い出した。FlickrのAPIは結構前から出たが、日本のユーザにとってはそんなに使われてないようだ。Flickr自身も中国語、韓国語はサポートしてるのに、なぜか日本語はサポートされてない。英語が苦手な僕にとって英語マニュアルを読むのが苦痛であった。幸い繁體中国語があったので、比較的に楽だった。しかしサンプルコードがなかったので、どのメソッドを使えばどのようなレスポンスが返ってくるとか、写真のURL生成はどうすればよいとか戸惑った部分があったので、FlickrAPIを使うにあたって基本的な部分を紹介したいと思います。

PHPのserialize, unserializeを使ったサンプルである。

1.API Key取得以下のところでAPI Keyを取得。(入力項目は適当に)
http://www.flickr.com/services/api/keys/

2. PHPからリクエスト発行
サンプルの ‘api_key’ の部分は1で取得したキーを使用。

<?php
  //API パラメータ
  $params = array('api_key' => '**************',
          'method' => 'flickr.photos.search',
          'user_id' => '9823188@N07',
          'format' => 'php_serial',);
  $encoded_params = array();

  foreach ($params as $k => $v){
    $encoded_params[] = urlencode($k).'='.urlencode($v);
  }

  //API リクエスト
  $url = "http://api.flickr.com/services/rest/?".
                      implode('&', $encoded_params);
  $rsp = file_get_contents($url);
  $rsp_obj = unserialize($rsp);

  //API レスポンス
  if ($rsp_obj['stat'] == 'ok'){
    foreach ($rsp_obj['photos']['photo'] as $photo){
      $farm_id = $photo['farm'];
      $server_id = $photo['server'];
      $id = $photo['id'];
      $secret = $photo['secret'];
      echo "<img src='http://farm".$farm_id.".
            static.flickr.com/";
      echo $server_id."/".$id."_".$secret."_s.jpg'/>";
    }
  }else{
    echo "呼び出し失敗!";
  }
?>

今回は、flickr.photos.searchというメソッドを使いましたが、そのほかにいろんなメソッドがあります。http://www.flickr.com/services/api/オプションとして、lightboxと組み合わせるともっと格好いいアルバムをつくれるはずです。

http://www.dongriab.com/test

Comments

6 Comments

Post a comment
  1. June 11, 2011

    いや〜、たすかりました!
    Frickrのapiて日本語ドキュメントなくてホント参ってました!
    参考にさせてもらいます、ほんとありがとう!

    • dongrikim #
      June 11, 2011

      参考になって良かったですw

  2. Efren Poth #
    May 6, 2013

    On 16 May 2006, Flickr updated its services from beta to “gamma”, along with a design and structural overhaul. According to the site’s FAQ, the term “gamma”, rarely used in software development, is intended to be tongue-in-cheek to indicate that the service is always being tested by its users, and is in a state of perpetual improvement…*

    Keep it up
    <http://www.beautyfashiondigest.com/

  3. 感謝。 #
    May 27, 2013

    探し回ってもエラーがでるスクリプトばかり、JavaScriptばかりでしたので、PHPのこちらのスクリプトはとても救いとなりました!ありがとうございました!

Trackbacks & Pingbacks

  1. AppEngineでFlickr APIを使ってみよう « foot mark

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Basic HTML is allowed. Your email address will not be published.

Subscribe to this comment feed via RSS