ヤフーショッピングAPIを使ったPHPサンプル|アフィリエイト向け

ここではヤフーショッピングのアフィリエイトを、プログラムを利用して行いたい人のために、必要な手続きについて備忘録として書いておきます。ゴールは、アフィリエイト用のURLの取得です。URL以外の情報もたくさん取得できますが、とりあえずこれで。
こちらのサイトでも書籍の情報を得るために使用しております。

もしも記事内容のとおりでうまくいかない場合は以下の公式ページをご覧ください。

ショッピング:アフィリエイトプログラム - Yahoo!デベロッパーネットワーク
Yahoo!デベロッパーネットワークでは、ショッピング APIを利用してYahoo!ショッピングの商品をご紹介くださるデベロッパーの皆様にアフィリエイトプログラムをご用意し...

手順は以下のとおりです。

バリューコマースのアフィリエイトを開設する。

以下のサイトでトップページ右側にある無料会員登録ボタンをクリックして登録してください。

Yahoo! shoppingに提携申し込み & トークン入手

広告プログラム検索メニュー内の「ウエブサービス対応プログラム検索」で「Yahoo! shopping」を検索し提携ボタンを押します。Yahoo! shoppingは審査は無いので即時提携となります。

同時に、画面の上部中央に表示される、「あなたのトークン」と書かれた枠の中にある英数字の文字列をコピーして、保存しておきます(常時表示されているので焦る必要なし)。

なおバリューコマースでAPIを使用する場合は必ず「ウエブサービス対応プログラム」に対応している広告主を選択します。「Yahoo! shopping」以外の広告主についても同様に選択すればOKです。

Yahoo! JAPAN IDを取得

Yahoo!メールなどに代表されるYahoo!の総合アカウントです。持っている人も多いと思います。持っていたら新たに開設する必要はありません。

アプリケーションIDを発行

以下のサイトにいって、アプリケーションIDの発行手続きを行います。発行といっても瞬時にできるのでご安心を。正確には「Yahoo! ID連携 v2」のアプリケーションID発行です。

アプリケーションの管理:Yahoo!デベロッパーネットワーク
Yahoo!デベロッパーネットワークは、開発者がXMLやRSSなどを利用して、自分のサイトやアプリケーションをYahoo! JAPANのWebサービスと融合するお手伝いをします。

サイトに行くと入力フォームがあるので、入力をしていきましょう。

  • アプリケーションの種類→サーバーサイド(Yahoo! ID連携 v2)をクリック
  • 連絡先メールアドレス  → たぶん既存のものが表示されています。変更したい場合は、新規に入力してください。
  • アプリケーション名 →   Webサイトの名称などを入力します。基本は何でもOKのようです。
  • サイトURL→   WebサイトのURL
  • 利用するスコープ→   チェックは不要
  • *ガイドラインに同意しますか?→ 「同意する」を選択
  • 最後に「確認ボタン」で終了

以上でアプリケーションIDが手に入りました!

リクエストURLを作成

Yahoo!ショッピングの商品検索結果を取得するための「リクエストURL」を準備します。

<アフィリエイトID>を作成

バリューコマースにアフィリエイターとしてログインしたら、広告の検索窓に「PDB_Yahoo_shopping」と入力して検索します。広告作成ボタンをクリックすると、広告作成の画面となります。

「自由テキスト広告」をクリックします。もしも複数の広告が掲示された場合は、コメント欄に「コメント・報酬発生条件:PDB_Yahoo_shopping」と書かれているほうを選びます。そちらの広告作成ボタンをクリックします。

広告作成画面からベースとなるURLを抜き出し、文字列を追加します。

抜き出すのは、最初の「//ck」から次のダブルコーテーション「” 」までです。実際にはXに数字が入ってます。

広告URLからハイライト部分を抜き出す
<a href=”//ck.jp.ap.valuecommerce.com/servlet/referral?sid=XXXXXXX&pid=XXXXXXXXX” target=”_blank” rel=”nofollow”><img src=”//ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=XXXXXXX&pid=XXXXXXXXX” height=”1″ width=”1″ border=”0″>自由テキスト</a>

抜き出したURLの頭に「http:」末尾に「&vc_url=」を追加します。

抜き出したURLに文字列を追加
http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=XXXXXXX&pid=XXXXXXXXX&vc_url=

このURLを、URLエンコードします。プログラムでやってもよいのですが、ちゃちゃっとWEBツールでやるのが楽です。

URLをエンコード
http%3A%2F%2Fck.jp.ap.valuecommerce.com%2Fservlet%2Freferral%3Fsid%3DXXXXXXX%26pid%3DXXXXXXXXX%26vc_url%3D

リクエストURLに3つのパラメータを指定

さて、いよいよリクエストURLを完成させます。あなたが使いたいAPIに3つのパラメータを指定します。

(1)「アフィリエイトID」→上記で作った<アフィリエイトID>を指定

(2)「アフィリエイトタイプ」→「vc」(半角英小文字)を指定

(3)「アプリケーションID」→ この記事の前半で用意した「Yahoo! ID連携 v2」のIDです。

使いたいAPIを選択

ショッピングサンプルコードのページにサンプルが掲載されています。

商品を検索する
商品検索APIを利用し、キーワードやカテゴリIDによる商品検索を行うためのサンプル。

設定した値で商品リストを表示する
商品検索APIを利用し、あらかじめ設定したキーワード等で商品リストを表示するためのサンプル。

カテゴリ別売り上げランキングを表示する
カテゴリランキングAPIを利用し、あらかじめ設定したカテゴリIDの売り上げランキングを表示するためのサンプル。
商品を検索する(モジュール作成用)
商品検索APIを利用し、キーワードやカテゴリIDによる商品検索を行うモジュールを作成するためのサンプル。
設定した値で商品リストを表示する(モジュール作成用)
商品検索APIを利用し、あらかじめ設定したキーワード等で商品リストを表示するモジュールを作成するためのサンプル。

カテゴリ別売り上げランキングを表示する(モジュール作成用)
カテゴリランキングAPIを利用し、あらかじめ設定したカテゴリIDの売り上げランキングを表示するモジュールを作成するためのサンプル。

さてここでは最も汎用性がある、商品検索APIを例として選び説明します。

APIのレスポンスタイプは「XML」と「PHPserialize」「JSONP」の3つから選べます。ここではXMLを選んでみます。

使うURLはこちらとなります。

基になるURL
http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch

このURLに「3つの必須のパラメータ」と「検索に必要なクエリ」を追加します。

3つの追加パラメータ
http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch?appid=<アプリケーションID>&affiliate_type=<アフィリエイトタイプ>&affiliate_id=<アフィリエイトID>&<検索クエリ>

検索クエリですが、こちらを見て細かいリクエストパラメータを指定します。ここでは書籍をISBNコードを指定して検索して結果を表示させるということをやってみましょう。検索クエリは「isbn=9784838729463」(取り上げる本は『君たちはどう生きるか』)となります。ちなみに書籍のISBNコードは10桁と13桁がありますが正式な13桁をお使いください。10桁はエラーとなります。

実際に入れるとこうなります。これでリクエストURLは完成です。

完成したリクエストURL
http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch?appid=http%3A%2F%2Fck.jp.ap.valuecommerce.com%2Fservlet%2Freferral%3Fsid%3DXXXXXXX%26pid%3DXXXXXXXXX%26vc_url%3D&affiliate_type=vc&affiliate_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxx&isbn=9784838729463

このURLをWEBプラウザで開くと、クロームでしたらXMLでのレスポンスがあります。
ひとまずお疲れ様でした。

PHPサンプル

では肝心のPHPですが、XMLを返してもらうパターンでのサンプルを用意しました。
よかったら参考にしてください。
書籍のISBNコードで、アフィリエイト用URLと、商品名(書名/著者)を返します。

PHP

<?php
//必要なパラメータ
$ISBN13 = "9784838729463";//書籍のISBN-13コード
$application_id='あなたのアプリケーションID';
$affiliate_id='あなたのアフィリエイトID';
//リクエストURL
$Y_request_url="http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch?appid=" . $application_id . &affiliate_type=vc&affiliate_id=" . $affiliate_id . "&store_id=boox&isbn=" . $ISBN13;
//echo $Y_request_url;//生成したURLの確認用
//レスポンスを格納
$Y_xml=simplexml_load_file($Y_request_url);
//戻ってきた値を取り出す
foreach($Y_xml->Result->Hit as $item_a=>$item){
$Y_affiliateUrl=$item->Url;//URLを取得
$Y_Name=$item->Name;//商品名を取得
}
//出力
echo $Y_Name . "のアフィリエイト用URL→" . $Y_affiliateUrl;
?>