Services_Calilをつくった

図書館検索サイト「カーリル」が昨日リリースした図書館APIを利用するライブラリを作りました。
Openpear.orgにて公開しています。

利用する場合は、カーリルのサイトからAPIの利用申請を行いAPIKeyを取得する必要があります。

インストール

sudo pear install openpear/Services_Calil-alpha 

利用サンプル

<?php
require_once 'Services/Calil.php';
require_once 'XML/Unserializer.php';

$apikey = 'APIキー';

$calil = new Services_Calil($apikey);

// 図書館DBの検索
$libraryArray = array();
$libraryArray['pref']       = '神奈川県';
$libraryArray['systemid']   = '';
//$libraryArray['geocode']    = '136.7163027,35.390516';
$libraryArray['format']     = 'xml';
//$libraryArray['callback']   = 'testcallback';

try {
    $library = $calil->library($libraryArray);
    //var_dump($library);

    $unserializer = new XML_Unserializer(array(XML_UNSERIALIZER_OPTION_ATTRIBUTES_PARSE => 'parseAttributes'));
    $unserializer->unserialize($library);
    $xml = $unserializer->getUnserializedData();
    var_dump($xml);

} catch (exception $e) {
    echo $e->getMessage();
}



// 書籍検索
$checkArray = array();
$checkArray['isbn']       = '4798119415,4798025623';
$checkArray['systemid']   = 'Kanagawa_Yokohama';
$checkArray['format']     = 'xml';

try {
    $check = $calil->check($checkArray);
    $unserializer = new XML_Unserializer(array(XML_UNSERIALIZER_OPTION_ATTRIBUTES_PARSE => 'parseAttributes'));
    $unserializer->unserialize($check);
    $xml = $unserializer->getUnserializedData();
    echo "<pre>";
    var_dump($xml);
    echo "</pre>";
} catch (exception $e) {
    echo $e->getMessage();
}

// 書籍検索ポーリング
if ($xml['continue']) {

    $pollingArray = array();
    $pollingArray['session']    = $xml['session'];
    $pollingArray['format']     = 'xml';
    $pollingArray['callback']   = 'callback';
    try {
        $polling = $calil->polling($pollingArray);
        $unserializer = new XML_Unserializer(array(XML_UNSERIALIZER_OPTION_ATTRIBUTES_PARSE => 'parseAttributes'));
        $unserializer->unserialize($polling);
        $xml = $unserializer->getUnserializedData();
        echo "<pre>";
        var_dump($xml);
        echo "</pre>";
    } catch (exception $e) {
        echo $e->getMessage();
    }

}

Services_Calil \ Package \ Openpear
カーリル | 日本最大の図書館蔵書検索サイト
カーリルのブログ: 図書館API仕様書