flickr.photos.searchメソッドでFlickrの画像検索~取得してみる
FlickrのAPIを使う目的が、「Flickrにあるたくさんの画像データを使いたい」という方は結構いると思います。
ここでは、そのための画像検索メソッド flickr.photos.search について説明します。

まずは文章で説明するよりサンプルです。
下の黒枠に書いてあるURLをコピーし、[取得したキー]の部分を皆さんのFlickrAPIキーに置き換えてブラウザで実行してみてください。
http://www.flickr.com/services/rest/?method=flickr.photos.search&format=rest&api_key=[取得したキー]&per_page=20&license=1,2,3,4,5,6&extras=owner_name&text=%E7%8C%AB

下の画像のようなページが表示されれば成功です。
flickr.photos.searchメソッドのレスポンス結果画像

このサンプルは「猫」に関連する画像を20枚リクエストしています。
以降で、このAPIリクエストについて説明していきます。
「猫」の画像を取得するには?(URLクエリのmethod,text)
あるキーワードに関連した画像、例えば「猫」に関連した画像を取得するには、
APIに要求するURLクエリでmethodにflickr.photos.search、textに「猫」を指定する必要があります。
(*textに指定する日本語は文字コードUTF8でURLエンコードしてあげる必要があります。
「猫」のURLエンコードした結果は「%E7%8C%AB」です。)

これらは、最初の黒枠で説明したURLの「method=flickr.photos.search」と「text=%E7%8C%AB」の部分です。
出力フォーマット形式をXMLにする(format)
Flickr APIが用意しているレスポンスのフォーマットの種類にはXML、JSON、PHP serializeなどいくつかありますが、今回は一番単純なrest(XML)形式を指定しています。
(*今後のサンプルでも基本的にrestを使用していくつもりです。)
フォーマットをrestにするには、URLクエリのformatをrestに指定します。
黒枠で説明したURLの「format=rest」の部分です。
一度の要求で取得する画像数(per_page)
一度の要求で取得する画像数を指定する場合、例えば、20枚の画像を要求したい場合、URLクエリのper_pageを20に指定します。
黒枠で説明したURLの「per_page=20」の部分です。
なお、このper_pageは省略可能です。省略した場合の出力画像数は100枚です。
画像の著作権について(license,extras=owner_name)
APIで取得した画像の著作権についてです。
基本的に今回のflickr.photos.searchメソッドの場合、api_key,method,textが必須条件であとはオプションですので、api_key,method,textの3つさえ指定すれば、APIのレスポンスはかえってきます。
しかし、この条件でかえってきた画像には、「all rights reserved(無断複写・転載を禁じます)」の著作権を放棄していない画像も多数混ざっており、これらの画像を使用する事は著作権侵害にあたってしまいます。
ですので、「all rights reserved」の画像を省くためには、URLクエリのlicenseを1,2,3,4,5,6に指定する必要があります。
黒枠で説明したURLの「license=1,2,3,4,5,6」の部分です。
(*licenseを指定しないとall rights reservedの他に6種類のクリエイティブ・コモンズライセンスの画像がかえってきます)

また、CCライセンスの画像には著作者の表示義務があるため、著作者の情報を取得するためにextrasにowner_nameを指定する必要があります。
黒枠で説明したURLの「extras=owner_name」の部分です。
extras=owner_nameを指定すると、レスポンス結果に著作者情報のownername属性が取得できます。

著作権について(license=1,2,3,4,5,6、CC(クリエイティブ・コモンズライセンス)、CCの画像の取り扱い許可)は長くなりそうなので、別途ページで説明します。

コメントを投稿する
名前 : 
URL : 
 *入力文字数は全角700文字までです。
おすすめPHP入門書