flickrのAPIを使えるか
http://www.flickr.com/services/api/
とりあえずキーをもらう。
http://www.flickr.com/services/developer/api/
基本のreq url
http://www.flickr.com/services/api/request.rest.html
http://api.flickr.com/services/rest/?method=flickr.test.echo&name=value
画像をキーワードとかで拾ってきたい場合はたぶんこれか?
http://www.flickr.com/services/api/flickr.photos.search.html
英語を読むのがきつくなってきたので日本語解説を探す。
http://itpro.nikkeibp.co.jp/article/COLUMN/20061101/252356/
http://webservice.kabufuru.net/flickr/photosSearch.php
のサンプルにあるURLを試してみる。
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
で検索結果を画像にするには・・
http://webservice.kabufuru.net/flickr/photosUrl.php
http://www.flickr.com/services/api/misc.urls.html
http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}_[mstb].jpg
のようにするらしい。最後のmstbは
[mstb]はm,s,t,bいずれかを指定する事を意味していて、これは画像サイズを表しています。
とのこと。
例
http://farm4.static.flickr.com/3021/265070hoge_5a4d28hoge_m.jpg
さっきのリクエストで得られたXMLの
<photo id="5359095889" owner="11179848@N00" secret="02610019c8" server="5243" farm="6" title="at a nekoshima" ispublic="1" isfriend="0" isfamily="0" ownername="rahen z" />
をベースに組み立ててみると、
http://farm6.static.flickr.com/5243/5359095889_02610019c8_m.jpg
うん。出ますね。
あとはrequestに位置情報ありとかを指定したり、写真IDから位置情報取得したりできればとりあえずOKか。
位置情報ありは
has_geo=true
をつければよさげ。
試しに
http://www.flickr.com/services/rest/?method=flickr.photos.search&format=rest&api_key=APIKEY&per_page=20&license=1,2,3,4,5,6&extras=owner_name&text=tokyo&has_geo=true
で試してみる。
結果のひとつ
<photo id="5359476589" owner="80072069@N00" secret="9f1af36ae9" server="5086" farm="6" title="Center" ispublic="1" isfriend="0" isfamily="0" ownername="gullevek" />
を見てみると・・・
表示
http://farm6.static.flickr.com/5086/5359476589_9f1af36ae9_m.jpg
geo情報
http://www.flickr.com/services/api/flickr.photos.geo.getLocation.html
より、
http://www.flickr.com/services/rest/?method=flickr.photos.geo.getLocation&format=rest&api_key=[APIKEY]&photo_id=5359476589
でこういうのが返ってくる。
<?xml version="1.0" encoding="utf-8" ?> <rsp stat="ok"> <photo id="5359476589"> <location latitude="35.562416" longitude="139.687531" accuracy="16" context="0" place_id="RR3n6c.bCZm8Fg72nA" woeid="28528238"> <neighbourhood place_id="RR3n6c.bCZm8Fg72nA" woeid="28528238">Shimomaruko 2 Chome</neighbourhood> <locality place_id="aod14iaYAJ1rDE.R" woeid="1118370">Tokyo</locality> <county place_id="4cc8eVSYBJyrEKD7ig" woeid="15015506">Ota-ku</county> <region place_id="V5QAdQebApgw_9XH" woeid="2345889">Tokyo Prefecture</region> <country place_id="JOgKHwabApgvrbIuBA" woeid="23424856">Japan</country> </location> </photo> </rsp>
うん。いけますね。
jsonpの場合
http://www.flickr.com/services/rest/?method=flickr.photos.geo.getLocation&format=json&api_key=[APIKEY]&photo_id=5359476589&jsoncallback=getCoord
getCoord({"photo":{"id":"5359476589", "location":{"latitude":35.562416, "longitude":139.687531, "accuracy":"16", "context":"0", "neighbourhood":{"_content":"Shimomaruko 2 Chome", "place_id":"RR3n6c.bCZm8Fg72nA", "woeid":"28528238"}, "locality":{"_content":"Tokyo", "place_id":"aod14iaYAJ1rDE.R", "woeid":"1118370"}, "county":{"_content":"Ota-ku", "place_id":"4cc8eVSYBJyrEKD7ig", "woeid":"15015506"}, "region":{"_content":"Tokyo Prefecture", "place_id":"V5QAdQebApgw_9XH", "woeid":"2345889"}, "country":{"_content":"Japan", "place_id":"JOgKHwabApgvrbIuBA", "woeid":"23424856"}, "place_id":"RR3n6c.bCZm8Fg72nA", "woeid":"28528238"}}, "stat":"ok"})