PHPで楽天ウェブサービスAPIを使ってみる パート2 「楽天ブックス書籍検索API」編

PHPで楽天ウェブサービスAPIを使ってみる」のページへ一定のアクセスをしていただいているので、新たに「楽天ブックス書籍検索API」を使うパターンの実例を作成してみます。楽天ウェブサービスAPIのGithubのページの説明を読むと、「RakutenRws_Client::execute() にAPI名、パラメータ、バージョンを入れると良い」と記載されていました。

参考URL
https://github.com/rakuten-ws/rws-php-sdk

楽天ブックス書籍検索API サンプルコード

このページでも実装しているソースコードを紹介します。
今回使用しているAPIは「BooksBookSearch」です。 使用しているパラメーターは、title、author、page、hitsです。 page、hitsは商品検索と同様ですが、title、authorは楽天ブックス書籍検索API用のパラメーターです。

<?php
require_once( dirname(__FILE__) . '/autoload.php');
require_once( dirname(__FILE__) . '/config.php');
require_once( dirname(__FILE__) . '/helper.php');

$response = null;
// キーワード設定
$title = "ワンピース";
// 著者に「尾田栄一郎」を指定
$author = "尾田栄一郎";
$page = 1;
if (isset($title)) {
    $title   = $title;
    $page      = isset($_GET['page']) ? $_GET['page'] : 1;

    // Clientインスタンスを生成 Make client instance
    $rwsclient = new RakutenRws_Client();
    // アプリIDをセット Set Application ID
    $rwsclient->setApplicationId(RAKUTEN_APP_ID);
    // アフィリエイトIDをセット (任意) Set Affiliate ID (Optional)
    $rwsclient->setAffiliateId(RAKUTEN_APP_AFFILITE_ID);

    // 楽天ブックス書籍検索APIで商品を検索します
    // Search by IchibaItemSearch (http://webservice.rakuten.co.jp/api/ichibaitemsearch/)
    $response = $rwsclient->execute('BooksBookSearch', array(
        'title' => $title,
        'page'    => $page,
        'author' => $author,
        'hits'    => 20
    ));
}

if ($response && $response->isOk()) {
	...処理
}
?>

RAKUTEN_APP_ID、RAKUTEN_APP_AFFILITE_IDはconfig.phpに記述しています。
$rwsclient->execute('BooksBookSearch', array(...))); 箇所でレスポンスがJSON形式で正常に戻ってきたら、$responseに代入されますので、あとは、$responseをごにょごにょする感じになりますね。今回の例ではarray(...)の中に入るキー(パラメーター)として、title、author、page、hitsのみを使用しましたが、その他のパラメーターを使いたい場合は、以下リンク(https://webservice.rakuten.co.jp/api/booksbooksearch/)の入力パラメーターの箇所を参考にご確認ください。

【楽天商品検索API実例】著者「尾田栄一郎」作品「ワンピース」の一覧を取得

さいごに

前回公開した記事「PHPで楽天ウェブサービスAPIを使ってみる」で楽天ウェブサービスAPIのPHPソースコードは作成していました。そのPHPソースコードを少し改修する事で楽天市場で販売されている本も取得できますね。今回は書籍を検索しましたが、CD、DVDなど他にも検索対象を絞る事も可能です。「どんなAPIが使えるか?」「そのAPIで使えるパラメーターは?」などを考えれば、実現したいサイト構築が可能になるかもしれません。APIは便利だし、楽しいですね!

※記事作成日:2017/12/12
最終更新日:2017/12/13