PHP5.6で楽天APIの商品取得APIを使う

PHP5.6で楽天APIの商品取得APIを使う

WebAPIPHP5.6で楽天APIの商品取得APIを使う

何年も前から利用している楽天 API ですが、API のバージョンアップや、レンタルサーバの PHP のバージョンアップに合わせて、少し調整してみました。XML-RPC や AtomAPI が使える無料ブログもいくつかあるので、それらと組み合わせると、API を利用したショップブログ的なものも自動で生成することができます。

アフィリエイトってイメージがよくないせいか、私の周りでやっている人はいないのですが、実際に楽天 API からのデータ取得プログラムを自作してみると、プログラミング初心者の人にはいい勉強になると思います。PHP だけでなく、REST など HTTP リクエストやレスポンスについての理解も深まりますし、UNIX(Linux)のサーバで cron の登録をしたり、シェルスクリプトでバッチを書いたりと、いろいろと発展させることもできます。

それによって、月に楽天ポイントがいくらか入るとなれば、新しい参考書籍を購入することもできるし、プログラムをこれから覚えようとしている人には、いいネタだと思っています。とりあえずは、楽天 API で商品情報を取得してくるクラスをサンプルに作ってみました。PHP5.6 以下で動作確認しています。

<?php

    class Rakuten {

        private $cnt     = 0;
        private $arrItem = array();
        private $apiUrl  = null;

        public function __construct($apiUrl) {
            $this->apiUrl = $apiUrl;
        }

        function requestRest() {

            $result = file_get_contents($this->apiUrl);
            $itemList = json_decode($result, true);

            if (!empty($itemList)) {

                $this->cnt = count($itemList);

                foreach ($itemList['Items'] as $item) {
                    $tmp = [];
                    $tmp["itemUrl"] = $item['itemUrl'];
                    $tmp["itemName"] = $item['itemName'];
                    $tmp["itemPrice"] = $item['itemPrice'];
                    $tmp["itemCaption"] = preg_replace('!{.*?}!is', '', $item['itemCaption']);
                    $tmp["affiliateUrl"] = $item['affiliateUrl'];
                    $tmp["mediumImageUrl"] = !empty($item['mediumImageUrls'][0]) ? $item['mediumImageUrls'][0] : '';
                    $tmp["smallImageUrl"] = !empty($item['smallImageUrl'][0]) ? $item['smallImageUrl'][0] : '';
                    $tmp["shopName"] = $item['shopName'];
                    $tmp["reviewCount"] = $item['reviewCount'];
                    $tmp["reviewAverage"] = $item['reviewAverage'];
                    $tmp["postageFlag"] = $item['postageFlag'];
                    $tmp["pointRate"] = $item['pointRate'];
                    $tmp["asurakuFlag"] = $item['asurakuFlag'];
                    $tmp["asurakuClosingTime"] = $item['asurakuClosingTime'];
                    $tmp["asurakuArea"] = $item['asurakuArea'];
                    $tmp["creditCardFlag"] = $item['creditCardFlag'];
                    array_push($this->arrItem, $tmp);
                }
            }
        }

        public function getCount() {
            return $this->cnt;
        }

        public function getItems() {
            return $this->arrItem;
        }
    }
?>

最終更新日:

関連記事

人気記事

新着情報