サンプル・プログラムの実行例
サンプル・プログラム
searchBook.php | サンプル・プログラム本体。 |
pahooRakuten.php | 楽天ウェブサービスに関わるクラス pahooRakuten。 使い方は「PHPで最寄りのネットができるホテルを検索する」などを参照。include_path が通ったディレクトリに配置すること。 |
バージョン | 更新日 | 内容 |
---|---|---|
3.1.1 | 2024/09/23 | 参考URL変更 |
3.1 | 2021/10/24 | PHP8対応,リファラ・チェック改良 |
3.0 | 2016/02/27 | pahooRakutenクラスに変更 |
2.02 | 2015/07/05 | SSLv3脆弱性対応 |
2.01 | 2014/03/29 | 変数名変更 |
バージョン | 更新日 | 内容 |
---|---|---|
3.6.2 | 2023/07/09 | bug-fix |
3.6.1 | 2022/12/13 | PHP8.2対応 |
3.6 | 2022/02/05 | 楽天商品検索API (version:2017-07-06)に変更 |
3.5 | 2021/10/24 | PHP8対応 |
3.4 | 2020/05/24 | 楽天書籍API (version:2017-04-04)に変更 |
楽天ブックス書籍検索API
楽天ブックス書籍検索APIは、楽天ブックスで販売されている書籍の情報を取得することが可能なAPIである。書籍タイトル、著者名、出版社名、書籍サイズ、ISBNコード、ジャンルIDのいずれかをキーワードにして書籍を検索することができる。
ここでは、書籍タイトルまたはISBNコードを検索キーに使う。
ここでは、書籍タイトルまたはISBNコードを検索キーに使う。
URL |
---|
https://app.rakuten.co.jp/services/api/BooksBook/Search/20130522 |
フィールド名 | 要否 | 内 容 |
---|---|---|
applicationId | 必須 | 楽天ウェブサービスのアプリケーションID |
format | 任意 | 'xml'または'json' 【デフォルト】json |
title | ★ | 書籍タイトル UTF-8でURLエンコードした文字列。複数キーワードから検索したい場合は、半角スペースで区切る。 |
author | ★ | 著者名 UTF-8でURLエンコードした文字列。複数キーワードから検索したい場合は、半角スペースで区切る。 |
publisherName | ★ | 出版社名 UTF-8でURLエンコードした文字列。複数キーワードから検索したい場合は、半角スペースで区切る。 |
size | ★ | 書籍のサイズ 0:全て 1:単行本 2:文庫 3:新書 4:全集・双書 5:事・辞典 6:図鑑 7:絵本 8:カセット,CDなど 9:コミック 10:ムックその他 |
isbn | ★ | ISBNコード(10進数13桁) |
booksGenreId | ★ | 楽天ブックスにおけるジャンルを特定するためのID |
hits | 任意 | 1ページあたりの取得件数 1から30までの整数 【デフォルト】30 |
page | 任意 | 取得ページ 1から100までの整数 【デフォルト】1 |
availability | 任意 |
在庫状況 0:すべての商品【省略時】 1:在庫あり 2:2~3日以内に発送予定 3:1~2週間以内に発送予定 4:予約受付中 |
outOfStockFlag | 任意 | 品切れ等購入不可商品表示フラ 0:品切れや販売終了など購入不可の商品は結果に表示させない【省略時】 1:品切れや販売終了など購入不可の商品を結果に表示させる |
chirayomiFlag | 任意 |
チラよみフラグ 0:すべての商品【省略時】 1:チラよみ対象商品で絞り込む |
sort | 任意 |
ソート standard:標準【省略時】 sales:売れている +releaseDate:発売日(古い) -releaseDate:発売日(新しい) +itemPrice:価格が安い -itemPrice:価格が高い +reviewCount:レビューの件数が少ない -reviewCount:レビューの件数が多い |
carrier | 任意 | PC用の情報を返すのか、モバイル用の情報を返すのかを選択 PC: 0【省略時】 mobile: 1 |
genreInformationFlag | 任意 |
ジャンルごとの商品数取得フラグ 0 :ジャンルごとの商品数の情報を取得しない【省略時】 1 :ジャンルごとの商品数の情報を取得する |
★タイトル、著者名、出版社名、書籍のサイズ、ISBNコード、楽天ブックスジャンルIDのいずれかが指定されていることが必須。
エラー内容はHTTPステータスコードとレスポンスボディから判断する。
準備:pahooRakuten クラス
16: // 楽天ウェブサービス・クラス ===============================================
17: class pahooRakuten {
18: var $error; //エラー・フラグ
19: var $errmsg; //エラー・メッセージ
20: var $hits; //検索ヒット件数
21: var $webapi; //直前に呼び出したWebAPI URL
22:
23: //楽天ウェブサービス
24: //https://www.pahoo.org/e-soul/webtech/php06/php06-01-02.shtm#Rakuten 参照
25: var $APPLICATIONID = '*******************'; //アプリID
26: var $APPLICATION_SECRET = '****************'; //シークレット
27: var $AFFILIATEID = '*******************'; //アフィリエイトID
楽天トラベルのホテル検索、楽天市場の商品検索など、楽天ウェブサービスを利用するために、クラスファイル "pahooRakuten.php" を使用する。組み込み関数 require_once を使って読めるディレクトリに配置する。ディレクトリは、設定ファイル php.ini に記述されているオプション設定 include_path に設定しておく。
クラスについては「PHPでクラスを使ってテキストの読みやすさを調べる」を参照されたい。
楽天ウェブサービスには、アプリID や アフィリエイトID が必要で、その入手方法は「楽天ウェブサービス - WebAPIの登録方法」を参照されたい。
クラスについては「PHPでクラスを使ってテキストの読みやすさを調べる」を参照されたい。
楽天ウェブサービスには、アプリID や アフィリエイトID が必要で、その入手方法は「楽天ウェブサービス - WebAPIの登録方法」を参照されたい。
解説:WebAPIコール
WebAPIはhttpsプロトコルであるため、ユーザー関数 callWebAPI のように cURL 関数を用いて呼び出している。このあたりについては「PHPセキュリティ対策:SSL通信を行う」で解説している。
解説:応答データの扱い
応答データの要素が多いので、取得したい要素を $RakutenBooksItems にあらかじめ定義しておき、ユーザー関数 searchBooks の中で付き合わせながら配列$items に格納していく。
参考サイト
- 楽天ブックス書籍検索API:楽天市場
- PHPでAmazonを利用して新刊書籍を検索:ぱふぅ家のホームページ
- Ajax - Amazonと楽天に二股かけてみる:404 Blog Not Found
- 楽天APIの結果がサイトの検索結果と異なる?!:頭と尻尾はくれてやる!
(この項おわり)
今回は、その中から楽天ブックスが販売する書籍の検索ができる楽天ブックス書籍検索APIを利用し、書名、著者名またはISBNコードから書籍情報を取り出すプログラムを作ってみることにする。
(2021年10月24日)PHP8対応,リファラ・チェック改良など