モノノフ日記

普通の日記です

PHPからflickrAPIをXML-RPCで利用する

今度はXML-RPCを使ったAPIの利用方法を試してみました。Flickrで試してます。

環境がPHP5だったのでPEAR::XML_RPC2で実装してみました。

参考にしたのはPEAR::Services_YouTubeです。

昨日よりはすんなりできました。というか、ほぼパクリなんですけどね(;´∀`)

下のコードはFlickrflickr.interestingness.GetListを呼び出す関数です。


<?php

require_once 'XML/RPC2/Client.php';

function interestingnessGetList($api_key, $date = '', $per_page = 20, $page = 1)
{
$parameters = array('api_key' => $api_key, 'date' => $date, 'per_page' => $per_page, 'page' => $page);
$options = array( 'prefix' => 'flickr.interestingness.', 'encoding' => 'UTF-8');
$url = 'http://api.flickr.com/services/xmlrpc/';

$client = XML_RPC2_Client::create($url, $options);

try {
$result = $client->getList($parameters);
} catch(XML_RPC2_FaultException $e) {
die('Exception #'.$result->getFaultCode().':'.$e->getFaultString());
} catch(Exception $e) {
die('Exception : '.$e->getMessage());
}
return $result;
}
?>


    注意点
  • 返り値はXML文字列なのでphp内で使うときはsimplexml_load_stringなどを利用する必要があります。

  • prefixにメソッド名の途中まで(最後のピリオドが出てくるところまで)を入力しcreateして、メソッド名をコールするときにその続き(最後のピリオド以降)を使うっていうのがクセがあるところだと思います。

  • APIに渡したいパラメータは連想配列でメソッドコール時の引数に渡せばOKです。