ロリポップでPEARライブラリのServices_Amazonを使ってAmazonから商品情報を取得する方法

自分のブログや作成したアプリケーションにAmazonや楽天などの商品情報を載せることができるAPI。さらにはアフィリエイトと連携して収益化まで出来てしまう素晴らしい仕組み。

今回、ロリポップのレンタルサーバにAmazonのAPIをより使いやすくするPEARライブラリのServices_Amazonをインストールして実際にAmazonから商品情報を引っ張ってくるところまでを作業したので記録しておこうと思う。

1.Amazonアソシエイトに登録

Amazonアソシエイトに登録してアソシエイトIDを取得します。

amazon

2.APIのアクセスキーの取得

アソシエイトに登録したら管理画面にログインし、右上の「Product Advertising API」をクリックしてアカウントの作成を行います。

amazon02

ここで作成するアカウントっていうのは、アソシエイトアカウントとは別でAmazon.comのアカウントのことだそうです。なのでここからは全て英語表記。でも親切に日本語のマニュアルが用意されてるので参照しながら作業を進めましょう。

amazon03

マニュアル通りに進んで登録が完了したらアクセスキーを確認することができます。

amazon04

3.ロリポップレンタルサーバにGo-PEARをインストール

Amazonから商品情報を引っ張ってくる時にあると便利なPEARライブラリ、Services_Amazonをインストールしたいのですが、ロリポップはPEARライブラリのインストールができません。

なのでここはブラウザ上でPEARの管理を出来るGo-PEARをインストールして、Go-PEAR経由でServices_Amazonをインストールしましょう。まずはGo-PEARのインストールから。

ブラウザでhttp://pear.php.net/go-pearにアクセスします。すると文字列がずらーっと表示されるので全部コピーしてしまい、メモ帳なんかに貼り付けてgo-pear.phpとして保存します。

次にサーバ上にPEARをインストールするためのディレクトリを作成します。ディレクトリ名は「pear」とでもしておきましょう。作成したディレクトリ内にgo-pear.phpをアップロードしブラウザでアクセスします。

amazon05

インストール画面が現れてなにやら設定項目がずらーっと表示されますが、特段いじる必要はなくデフォルトのままでインストールを開始します。

インストールが完了すると管理画面が表示されます。上部に警告(htaccessでアクセス制限されていないという警告)が表示されますが、後で設定すれば良いのでとりあえず無視してGo-PEARのインストールを完了。

4.Services_Amazonをインストール

Go-PEARの管理画面右上の「Search package by name」にservices_amazonと入力してパッケージを検索します。

検索結果が表示されてServices_Amazonのパッケージが表示されます。緑色の十字マークをクリックしてインストールしましょう。

amazon06

これでServices_Amazonのインストールは完了です。

5.Services_Amazonを使ってAmazonから商品情報を引っ張ってくる

テストで使う様式はAmazon APIを使って簡単にランキングを取得するを参考にさせていただきました。

上記サイトの様式を参考にとりあえずamazon-test.phpを作成してサーバへアップロード。ブラウザでアクセスしてみると…

Fatal error: Call to undefined method Services_Amazon::setAssociateTag() in ディレクトリのパス

と、表示されてエラーとなります。これを解消するにはamazon-test.php内14行目include_once ‘Services/Amazon.php’;の部分をフルパスで表記してやると解消します。

include_once '/home/users/0/あなたのドメイン/web/pear/PEAR/Services/Amazon.php';

修正して再度アクセスすると

Amazonの情報取得に失敗しました(リクエストには、必要なパラメータが含まれていません。必要なパラメータには、AssociateTagなどがあります。)【Code:AWS.MissingParameters】

再びエラーが出ました。このエラーをよく読んでみると「必要なパラメータには、AssociateTagなどがあります。」とあるので素直にアソシエイトIDを設定するよう修正します。15行目の下あたりに$amazon->setAssociateTag(‘アソシエイトID’)を追加します。

$amazon = new Services_Amazon($access_key_id,$secret_access_key);
$amazon->setAssociateTag('あなたのアソシエイトID');

再度ブラウザでアクセスすると…

amazon07

出ました!

Services_Amazonの機能についてはPEAR Class:Services_Amazonを参照すると使える機能の一覧が表示されるのでウェブサービス作成の際に参考にしましょう。

さて、僕もなんかサイト作るかな。

参考サイト

ロリポップへのPEARのインストール(課題あり)[nak on the web 別館 | システムside]

Amazon APIを使って簡単にランキングを取得する[EC Studio 技術ブログ]

中小企業内でITを担当する職員として働いてますYOHEIです(社内SE?)。ほぼ一人職場なので悠々自適に過ごしてますが、たまに仕事の相談相手がいないのが寂しいっちゃ寂しい。趣味はあれこれ考えて結局何も買わないウィンドウショッピングと、買いもしない中古車の情報サイトを巡ること。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です