書籍”公開API活用ガイド”の第4章:REST APIの処理を読んで実践。
REST APIは、HTTPのメソッド”GET”、”POST”、”DELETE”、”PUT”に対して、XMLで結果を返すタイプのAPIみたい。
他にもタイプがあるのかな?
書籍では、検索用メソッド”flickr.photos.search”を利用し、猫の画像を一覧表示するPHPプログラムを解説していた。このメソッドを使ってパラメータに検索ワードと並び順と取得件数を指定した場合、次のようになるみたい。
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=&"APIキー"&text="検索ワード"&sort="並び順"&per_page="取得件数"
取得したXMLファイルをPHPのsimplexml_load_file関数でパースする。この関数は先日読んだ書籍で解説していたので見覚えがある。
メモ
- Flickr API:http://www.flickr.com/services/api/
- flickr.photo.search 詳細:http://www.flickr.com/services/api/flickr.photos.search.html
- 検索ワードは、urlencode関数を使ってエンコードする
フォームに入力した検索ワードを一覧表示するページ
確認:photo.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Flickr API practice</title> </head> <body> <h1>Flickr API sample</h1> <form action="" method="get"> <input type="text" name="keyword" size="35" maxlength="255" value="" /> <input type="submit" value="search" /> </form> <?php function search_flickr($keyword, $limit) { $api_key = 'Flickr's API Key'; $method = 'flickr.photos.search'; $text = urlencode($keyword); $sort = "interestingness-desc"; $per_page = $limit; $url = 'http://api.flickr.com/services/rest/?'. 'method='.$method. '&api_key='.$api_key. '&text='.$text. '&sort='.$sort. '&per_page='.$per_page; $data = simplexml_load_file($url) or die("XML Parse Error"); $size = "_m"; $ret = ""; foreach ($data->photos as $photos) { foreach ($photos->photo as $photo) { $ret .= '<a href="http://www.flickr.com/photos/'.$photo['owner'].'/'.$photo['id'].'/">'; $ret .= '<img src="http://farm'.$photo['farm'].'.static.flickr.com/'.$photo['server'].'/'.$photo['id'].'_'.$photo['secret'].$size.'.jpg" alt="'.$photo['title'].'">'."n"; $ret .= '</a>'; } } return $ret; } if (!empty($_REQUEST["keyword"])) { $keyword = htmlspecialchars($_REQUEST["keyword"], ENT_QUOTES, 'UTF-8'); $limit = 10; echo search_flickr($keyword, $limit); } ?> <p>powered by <a href="http://www.flickr.com/services/api/">Flickr Services</a></p> </body> </html>
公開API活用ガイド (I・O BOOKS)
posted with amazlet at 12.01.24
ZAPA
工学社
売り上げランキング: 149253
工学社
売り上げランキング: 149253
関連エントリー