案ずるより産むが易し 意外と簡単 楽天ウェブサービスを使ってみる(1)
ウィキペディアによると、「Webサービス(ウェブサービス)とは、HTTPなどのインターネット関連技術を応用して、SOAPと呼ばれるXML形式のプロトコルを用いメッセージの送受信を行う技術、またはそれを適用したサービス」のことを言うのだそうです。簡単に言えば、インターネット通信の仕組みを利用してデータをやり取りすることと言えるでしょう。
今回はこのウェブサービスに挑戦してみたいと思います。
様々なウェブサービスがあるそうなのですが、一般的なものとしては、楽天やamazon、じゃらん、ヤフーなどのウェブサービスが挙げられます。
これらのウェブサービスを利用すれば、大量にある商品や店舗、宿泊施設などの情報の中から、条件を指定して絞り込んだデータを得ることが可能です。
サイトのテーマに合ったデータを表示したり、ブログ等から関連データを表示しているページへのリンクを張ればサイトも充実しますし、訪問者により多くの情報を提供することができます。
また、これらのサービス業者はアフィリエイトプログラムも同時に提供していることが多く、訪問者の購買につながればポイント取得などのメリットも生まれます。
業者の提供しているウェブサービスを利用するには、ちょっとしたプログラムの知識が必要になりますが、まったく歯が立たないというものでもありません。
今回は、楽天ウェブサービスのうち、「 楽天Kobo電子書籍検索API 」を題材にして、その利用方法を整理したいと思います。
1、まずは、申請
楽天のウェブサービスを利用するには、アプリIDが必要になります。
申請してIDを発行してもらいます。詳しくは、楽天ウェブサービスをご覧ください。
2、データを取得してみる
IDが取得できたら、それを使ってデータを取得してみましょう。
多くの検索条件がありますが、今回は キーワードと1ページあたりの取得件数、取得ページを指定します。
アプリID、アフィリエイトID、フォーマット(xml かjsonか)の入力は必須です。
<?php
// -----------------------------------------------------------------------------------
// 配列を使って、基本的なリクエストを作成します
// -----------------------------------------------------------------------------------
$_BASEURL ='https://app.rakuten.co.jp/services/api/Kobo/EbookSearch/20170426'; // 楽天Kobo電子書籍検索クエストURL
$_PARAMS = array(); // パラメータ用配列
$_PARAMS['applicationId'] = '1234567890123456789'; // あなたのアプリID
$_PARAMS['affiliateId'] = '0123abcdef567890ghijklmn009'; // あなたのアフィリエイトID
$_PARAMS['format'] = "xml"; // json か xml を選択
$_PARAMS['keyword'] = "ストライク・ザ・ブラッド"; // キーワードを入力します
$_PARAMS['koboGenreId'] = ""; // ジャンルを指定する場合はそのIDを入力します
$_PARAMS['hits'] = 12; // 1ページあたりの取得件数 1から30までの整数
$_PARAMS['page'] = 2; // 取得ページ 1から100までの整数
//配列の中の空要素を削除します
$_PARAMS = array_filter($_PARAMS, "strlen"); // 指定のない項目を削除します
// canonical string を作成します
$canonical_string = '';
foreach ($_PARAMS as $key => $val) {
$canonical_string .= '&'.$key.'='.$val;
}
$canonical_string = substr($canonical_string, 1); // $canonical_string の最初の文字'&'を除きます
// リクエストURL を作成します
$_REQ_URL = $_BASEURL.'?'.$canonical_string; // BASEURLにパラメータを付加してリクエストを生成します
print("REQ_URL ::: $_REQ_URL <br>"); // リクエストの確認をしています
// -----------------------------------------------------------------------------------
// APIクエストして、データを確認します
// -----------------------------------------------------------------------------------
$sxmlStr = @file_get_contents ($_REQ_URL ); //APIリクエストをします
$sxmlData = simplexml_load_string($sxmlStr); //xml文字列をsimpleXmlオブジェクトに変換
//以降xmlオブジェクト($sxmlData)を処理します
print "<pre>";print_r($sxmlData);print "</pre>"; // データを表示して確認しています
?>
デモページでは、取得したデータをHTML形式に変換して表示しています。
上記のプログラムでは、以下のようなデータが表示されます。
SimpleXMLElement Object
(
[count] => 28
[page] => 2
[first] => 13
[last] => 24
[hits] => 12
[pageCount] => 3
[Items] => SimpleXMLElement Object
(
[Item] => Array
(
[0] => SimpleXMLElement Object
(
[title] => ストライク・ザ・ブラッド1 聖者の右腕
[titleKana] => ストライクザブラッド001セイジャノミギウデ
[subTitle] => SimpleXMLElement Object
(
)
[seriesName] => ストライク・ザ・ブラッド
[author] => 三雲 岳斗,マニャ子
[authorKana] => ミクモ ガクト,マニャコ
[publisherName] => KADOKAWA / アスキー・メディアワークス
[language] => JA
[salesDate] => 2013年10月08日
[itemNumber] => 4332115700300
[koboGenreId] => 101903001004
[itemCaption] => “第四真祖”── それは伝説の中にしか存在しないはずの世界最強の吸血鬼。十二体もの眷獣・・・“第四真祖”暁古城(あかつきこじょう)の正体とは!?
[itemPrice] => 616
[itemUrl] => https://books.rakuten.co.jp/rk/4cd221112ab83911b40616dfd30787b7
・
・
・
・
3、クレジットの表示
楽天ウェブサービスで提供されるAPIを利用して作成されたアプリであることを示すために、これを使用したページにはクレジットを表示することが義務付けられています。
ページを新しくした場合など、うっかり忘れることがありますので注意が必要です。