アフィリエイトサイトで商品検索フォームなどを作成するする場合、Webプログラミングが必要になってきます。
で、今回はWebプログラミングの部分はPHPで行います。
HTMLとCSSの習得も大変なのに、さらにスクリプト言語もなんて!!
と、うんざりしてしまいますが、乗り越えた先には売り上げゼロからの脱出が待っている!!
なんて妄想を膨らませて乗り切って行きましょう。
では、今日から私が勉強して行く過程を備忘録も兼ねてアップして行きます。
とりあえずやりたいことは、「iPhoneアプリやアフィリエイトサイトでのキーワード検索」。そして、「検索結果の一覧を価格の安い順などユーザーの指定にあわせて表示する」です。
そこで、この一連の流れを切り分けて考えてみる事にしましょう。
まずはキーワードの入力と送受信について。
iPhoneアプリでは「テキストフィールド」でキーワードを入力し、検索ボタン等を押したタイミングでNSURLConnectionクラスなどを利用してサーバーと通信を開始します。アフィリエイトサイトでは「inputタグ」でキーワードを入力し、こちらも検索ボタンを押したタイミングで「formタグ」によって指定した送信先ファイルのスクリプトを実行するといった感じでしょうか。
どちらもキーワードの入力と送信ボタンを押す所までは非常に簡単に出来ますね。問題は入力したキーワードの送信方法と受信方法と言う事になります。
では、送信方法について見て行きます。
送信方法には、「GET」と「POST」の2種類あります。いろいろなサイトを見てみましたが、この2種類以外は書いてませんでしたので、この2種類から選べばオッケーということでしょうね。
「GET」と「POST」の違いについては、検索すれば情報はたくさん出てきますので細かいところは省略しますが、送信出来るデータ量の違いとブラウザのアドレス欄に表示されるかどうかと言ったところですかね。
今回は送信するデータ量も少ないですし、アドレス欄に表示されても全く問題ないと思いますので、「GET」を使ったデータ送信を行います。
「formタグ」と「inputタグ」は以下のようにしてみました。「formタグ」と「inputタグ」には他にも属性がいろいろとあったりしますので、興味のある方は調べてみて下さい。
「action属性」にはデータを受け取るPHPファイルを指定し、「inputタグ」の「name属性」には受け取り側で識別出来るように名前を付けておきます。
たったこれだけで送信出来るんですね。意外に簡単でした
今度は受信方法について見てみます。
「formタグ」の「action属性」で指定したファイルに以下の内容で記述します。
フォームを作成したHTMLファイルとPHPファイルをサーバーに転送してみて下さい。送信ボタンを押すと、入力フィールドに入力した文字列が表示されるはずです。
そうです。たったあれだけで受信もできますた。
ここまでは意外に簡単でしたね~
送信ボタンを押したら文字化けするって方は、作成するファイルはすべてUTF-8で作成し、ブラウザのエンコーディングもUTF-8にしてみて下さい。私はブラウザはsafariを使用してるのですが、文字化けで丸一日くらい悩みました。いろんな小難しいサイトも見たりして試したのですが、結局ブラウザのエンコーディングがSHIFT-JISになっていた事が原因でした。まずはブラウザの設定から確認するべきでした。iPhoneアプリ開発で使ってるXcodeが基本UTF-8なので自分の環境はUTF-8になってる気になってました
さて、ユーザーに入力してもらった文字列をPHPで受け取る事が出来たので、今度は受け取った文字列をもとに各ASPへ商品検索リクエストを送るところまでを見て行きます。
商品検索リクエストは基本的にリクエストURL+パラメータでオッケーのようなので、このパラメータ部分は変数で、リクエストURLは定数で保持する事にします。今回のケースでは、変数や定数でデータを持つ必要性はあまりないかもしれませんが、何をどういう順番でやっているのか理解するためにあえてやってみます。
変数や定数が???な方は「そふぃのPHP入門」がとても参考になると思います。このブログではウンチクはとりあえず置いといて、まずはアフィリエイトサイトを作ってしまう事を優先させたいって方針を採用しております
アフィリエイトサイトが出来上がったら、やって来たことを振り返りながら勉強してみるのもいいと思います。勉強してる間にも売り上げがあった方がいいですよね?
そんな訳で、リクエストの送信について見て行きます。
今回はYahooショッピングの商品検索APIで試してみます。
Yahooショッピングでアフィリエイトする場合は、YahooデベロッパーネットワークでのアプリケーションIDの作成と、Yahooショッピングアフィリエイトプログラムに参加する必要があります。その他にバリューコマースアフィリエイトプログラムへ参加する事でバリューコマースのアフィリエイトIDで商品検索APIを利用する事も出来ます。
詳しくはYahooデベロッパーネットワークで確認して下さい。
YahooアフィリエイトIDでのリクエストURLプラス固定パラメータを作成してみました。赤字の部分はご自身のIDへ置き換える部分です。(受け取るデータはjsonを指定してます。)
http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch?appid=<アプリケーションID>&affiliate_type=yid&affiliate_id=<アフィリエイトID>&query=
上記のURLは固定の値として扱うので定数で保持します。定数は「define("定数名","値")」で設定できるので、下記のようにリクエストURLを定数にします。
define("REQUEST_URL,"http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch?appid=<アプリケーションID>&affiliate_type=yid&affiliate_id=<アフィリエイトID>&query=");
続いてリクエストURLと検索キーワードを結合させた文字列を変数に代入します。
$request = REQUEST_URL . htmlspecialchars( $_GET["keyword"] );
アフィリエイトリンク作成用のリクエストURLで商品検索リクエストを送信し、レスポンスをjsonで受け取ります。
$json = file_get_contents($request);
受け取ったjson形式のデータをパースして連想配列にします。
$json_dic = json_decode($json, true);
パースが失敗した場合はNULL値が返ってくるらしいので、失敗した場合はエラーと表示させて処理を終了させます。
var_dump($json_dic);
コードを通して書いてみると以下の通りです。
<?php
define("REQUEST_URL,"http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch?appid=<アプリケーションID>&affiliate_type=yid&affiliate_id=<アフィリエイトID>&query=");
$request = REQUEST_URL . htmlspecialchars( $_GET["keyword"] );
$json = file_get_contents($request);
$json_dic = json_decode($json, true);
で、今回はWebプログラミングの部分はPHPで行います。
HTMLとCSSの習得も大変なのに、さらにスクリプト言語もなんて!!
と、うんざりしてしまいますが、乗り越えた先には売り上げゼロからの脱出が待っている!!
なんて妄想を膨らませて乗り切って行きましょう。
では、今日から私が勉強して行く過程を備忘録も兼ねてアップして行きます。
とりあえずやりたいことは、「iPhoneアプリやアフィリエイトサイトでのキーワード検索」。そして、「検索結果の一覧を価格の安い順などユーザーの指定にあわせて表示する」です。
そこで、この一連の流れを切り分けて考えてみる事にしましょう。
まずはキーワードの入力と送受信について。
iPhoneアプリでは「テキストフィールド」でキーワードを入力し、検索ボタン等を押したタイミングでNSURLConnectionクラスなどを利用してサーバーと通信を開始します。アフィリエイトサイトでは「inputタグ」でキーワードを入力し、こちらも検索ボタンを押したタイミングで「formタグ」によって指定した送信先ファイルのスクリプトを実行するといった感じでしょうか。
どちらもキーワードの入力と送信ボタンを押す所までは非常に簡単に出来ますね。問題は入力したキーワードの送信方法と受信方法と言う事になります。
では、送信方法について見て行きます。
送信方法には、「GET」と「POST」の2種類あります。いろいろなサイトを見てみましたが、この2種類以外は書いてませんでしたので、この2種類から選べばオッケーということでしょうね。
「GET」と「POST」の違いについては、検索すれば情報はたくさん出てきますので細かいところは省略しますが、送信出来るデータ量の違いとブラウザのアドレス欄に表示されるかどうかと言ったところですかね。
今回は送信するデータ量も少ないですし、アドレス欄に表示されても全く問題ないと思いますので、「GET」を使ったデータ送信を行います。
「formタグ」と「inputタグ」は以下のようにしてみました。「formタグ」と「inputタグ」には他にも属性がいろいろとあったりしますので、興味のある方は調べてみて下さい。
「action属性」にはデータを受け取るPHPファイルを指定し、「inputタグ」の「name属性」には受け取り側で識別出来るように名前を付けておきます。
<form action="submittest.php" method="GET">
<p><input type="text" name="keyword"><input type="submit"></p>
</form>
たったこれだけで送信出来るんですね。意外に簡単でした
今度は受信方法について見てみます。
「formタグ」の「action属性」で指定したファイルに以下の内容で記述します。
<?php
print htmlspecialchars( $_GET["keyword"] );
PHPは終了タグは省略できるそうです。HTMLも終了タグを省略出来たりする物もある見たいです。フォームを作成したHTMLファイルとPHPファイルをサーバーに転送してみて下さい。送信ボタンを押すと、入力フィールドに入力した文字列が表示されるはずです。
そうです。たったあれだけで受信もできますた。
ここまでは意外に簡単でしたね~
送信ボタンを押したら文字化けするって方は、作成するファイルはすべてUTF-8で作成し、ブラウザのエンコーディングもUTF-8にしてみて下さい。私はブラウザはsafariを使用してるのですが、文字化けで丸一日くらい悩みました。いろんな小難しいサイトも見たりして試したのですが、結局ブラウザのエンコーディングがSHIFT-JISになっていた事が原因でした。まずはブラウザの設定から確認するべきでした。iPhoneアプリ開発で使ってるXcodeが基本UTF-8なので自分の環境はUTF-8になってる気になってました
さて、ユーザーに入力してもらった文字列をPHPで受け取る事が出来たので、今度は受け取った文字列をもとに各ASPへ商品検索リクエストを送るところまでを見て行きます。
商品検索リクエストは基本的にリクエストURL+パラメータでオッケーのようなので、このパラメータ部分は変数で、リクエストURLは定数で保持する事にします。今回のケースでは、変数や定数でデータを持つ必要性はあまりないかもしれませんが、何をどういう順番でやっているのか理解するためにあえてやってみます。
変数や定数が???な方は「そふぃのPHP入門」がとても参考になると思います。このブログではウンチクはとりあえず置いといて、まずはアフィリエイトサイトを作ってしまう事を優先させたいって方針を採用しております
アフィリエイトサイトが出来上がったら、やって来たことを振り返りながら勉強してみるのもいいと思います。勉強してる間にも売り上げがあった方がいいですよね?
そんな訳で、リクエストの送信について見て行きます。
今回はYahooショッピングの商品検索APIで試してみます。
Yahooショッピングでアフィリエイトする場合は、YahooデベロッパーネットワークでのアプリケーションIDの作成と、Yahooショッピングアフィリエイトプログラムに参加する必要があります。その他にバリューコマースアフィリエイトプログラムへ参加する事でバリューコマースのアフィリエイトIDで商品検索APIを利用する事も出来ます。
詳しくはYahooデベロッパーネットワークで確認して下さい。
YahooアフィリエイトIDでのリクエストURLプラス固定パラメータを作成してみました。赤字の部分はご自身のIDへ置き換える部分です。(受け取るデータはjsonを指定してます。)
http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch?appid=<アプリケーションID>&affiliate_type=yid&affiliate_id=<アフィリエイトID>&query=
上記のURLは固定の値として扱うので定数で保持します。定数は「define("定数名","値")」で設定できるので、下記のようにリクエストURLを定数にします。
define("REQUEST_URL,"http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch?appid=<アプリケーションID>&affiliate_type=yid&affiliate_id=<アフィリエイトID>&query=");
続いてリクエストURLと検索キーワードを結合させた文字列を変数に代入します。
$request = REQUEST_URL . htmlspecialchars( $_GET["keyword"] );
アフィリエイトリンク作成用のリクエストURLで商品検索リクエストを送信し、レスポンスをjsonで受け取ります。
$json = file_get_contents($request);
受け取ったjson形式のデータをパースして連想配列にします。
$json_dic = json_decode($json, true);
パースが失敗した場合はNULL値が返ってくるらしいので、失敗した場合はエラーと表示させて処理を終了させます。
if ($json_dic === NULL) {
print "エラー";
print "エラー";
return;
}
var_dump()でパースしたデータを格納した変数の内容や命令の返り値を画面上に出力して今回のテストを終了します。var_dump($json_dic);
コードを通して書いてみると以下の通りです。
<?php
define("REQUEST_URL,"http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch?appid=<アプリケーションID>&affiliate_type=yid&affiliate_id=<アフィリエイトID>&query=");
$request = REQUEST_URL . htmlspecialchars( $_GET["keyword"] );
$json = file_get_contents($request);
$json_dic = json_decode($json, true);
if ($json_dic === NULL) {
print "エラー";
print "エラー";
return;
}
var_dump($json_dic);
これでASPへのリクエスト送信とデータ受信までは出来ました。
次回は受け取ったデータを、商品一覧として表示するところまでやってみたいと思います。
var_dump($json_dic);
これでASPへのリクエスト送信とデータ受信までは出来ました。
次回は受け取ったデータを、商品一覧として表示するところまでやってみたいと思います。