Amazon APIってやつを使ってプログラム作ってみたい!
Amazon APIといえば、
- 出品者用のMWS API
- アフィリエイト用のProduct Advertising API(PA-API)
この2つがあります。実際には他にAWSとかいろいろありますが、輸入ビジネスでお手軽に扱えるのは上記2つでしょう。(AWSは従量課金制だったり)
ネット上にはAmazon APIを使ったプログラミングの作り方が公開されていますが、どちらかというと情報は少ないほうだと感じています。おかげさまでいつも手探りです。
そして何より問題なのが、
と思うようなアプローチ(ツール作成~完成までの道のり)が多いと感じています。
なので、今回は『アプリ屋でもなんでもない、システムエンジニアと言えるかどうか怪しいヤツ』が、Amazon APIを使ったプログラミングについて、超オリジナリティ溢れる偏見をそれっぽく理屈並べて書いてみます。
Amazon APIを使ったプログラミングの言語は?
プログラミング言語は何にする?⇒C#がおすすめ
Amazon APIを使ったプログラミングについて、一番最初に決めなければならないのが開発環境です。
開発環境…つまり、プログラム言語は何を選択するか?ということです。
下記の記事でも書いていますが、わたしはC#という言語を選択しています。そしておすすめです。
わたしは断固としてC#を貫いてきましたが、実はC#でAmazon APIを使った情報は圧倒的に少ないです。多いのはPHPばかり。
たとえば、輸入ビジネスでわたしと同じくプログラムを使って稼ぎました!という人のブログを読んだことがあるのですが、そこではPHPを使ってツールを作成されていました。
PHPを使うのは正しいのか?
わたしはブログで何度か書いてきていますが、
- プログラミング言語の選択というのは『適材適所』
ということです。
よく、プログラミングを勉強しようとする人が『プログラミング言語は何がおすすめですか?』と聞きますが、一概に何が良いとは答えられなくて、一番回答にこまる質問です。(現役のSEでも、1言語しか扱えない、なんていう人がざらですが…)
ちなみに、わたしはこのブログで公開しているツールには下記の言語を使ってきています。
- C#
- VBScript
- javascript
- PHP
何か1つ習得すればいい、ではなく、何を作るかによって使うプログラミング言語が違います。ちなみにわたしの本業は生粋のC言語、ただその1つだけです。
個人で使うリサーチツールであれば、PHPという選択はたいていの場合は悪手である、とわたしは考えています。
PHPを使うことのデメリット
環境構築がめんどくさすぎ
と思っても、プログラムはすぐに作れるものではありません。
PHPを使う場合であれば、サーバを用意する必要があります。
たとえばロリポップとかXサーバとか、そういうところと契約してサーバを使わせてもらわないとダメです。
開発環境が貧弱、というかC#(Visual Studio)が優秀すぎ
わたしのようなシステムエンジニア・プログラマは普段、プログラムコードを書く時にメモ帳なんてものは使いません。
開発環境というものがあります。
C#であればVisual Studio、PHPであればEclipseといったところでしょうか。
これらの開発環境を使うと『プログラムコード補完機能』(インテリセンス)というものがあり、プログラミングをガイドしてくれるんです。
そして、フレームワークというプラットフォーム的なやつが登場して以来、プログラムの開発スピードが格段に早くなりました。
そんな便利な開発環境ですが、C#が使えるVisual Studioなら、Microsoftからダウンロードしてインストールすればすぐに使えますが、PHPをEclipseで使うなら、環境設定がいろいろあります。(たぶん)
C#はプログラムも書きやすいし、デバッグもしやすい。個人で使うツールであればC#が一番おすすめです。
Javaという選択もあるかもしれませんが、わたしはJavaそのものにバグがあると思っていてなるべく触らないようにしています。
Visual StudioはExpress Editionというのが無料ですし、わたしもVisual Studio Express Editionを使っています。1人開発、小規模開発であればこれで不足は感じません。
PHPやるならクライアント・サーバシステムの知識も必要になる
PHPというプログラミング言語はサーバサイドスクリプトといって、サーバ側で動くプログラムです。
PHPの反対にあたるものがjavascriptです。javascriptはクライアント側で動くプログラムです。
サーバに対してどうやってデータを送るのか?どうやってデータを受け取るのか?どのようにwebページを表示させればいいのか?
なんとなくでもプログラムを作れてしまうかもしれませんが、そこをはっきり理解しておかないとセキュリティ的に脆弱なプログラムができてしまう可能性があります。
サンプルコードを切り貼りしているだけではPOSTとGETの違いもわからないでしょう。
PHPでwebスクレイピングツールを作るといった記事も見かけますが、下記の記事でも書いたように、HTTP通信まで理解しておかないと危ないです。
で終わりじゃないんです。自分のPCとAmazonのサーバとの通信ログをしっかり確認してみると、まるで違う通信内容になっているはずです。
HTMLもわかってないとダメ
そもそもPHPとは、HTML・javascriptを生成するためのプログラム言語だと思っておいたほうが良いです。
そうなると、HTMLやjavascriptの知識も必要になる、というわけです。
ネット上のプログラミング塾とか、PHPばかり推していますが、ぶっちゃけ初心者にPHPはハードル高すぎです。
PHPを扱うには、
- クライアント・サーバシステム
- HTML
- javascript
これらの知識が最低限必要になります。さらにつけくわると、データベースの知識も必要です。
プログラミング言語の学習には絶対にC言語が1番です。C言語を理解する=コンピュータを理解する、ということであり、コンピュータを理解すればあらゆる言語も容易に習得できるようになりますので。
最近の世の中はC言語がおざなりにされている感じがしてさみしいです。
PHP…処理速度遅すぎ!
PHPは処理速度が遅いです。
細かく言うと…プログラムには2種類のプログラムがあります。
- コンパイラ言語
- インタプリタ言語
前者はプログラムを書いたあと、機械語という01の羅列に直してコンピュータが読み込み実行するタイプのプログラム。いちいちプログラムをビルド・コンパイルする手間が発生するため面倒ではありますが処理が高速です。C言語、C++、C#、javaなどが該当します。
後者はプログラムを書けばすぐに動く。プログラムの再起動なんてものも不要です。システムを止められないサーバ側のプログラムには最適なのですが、いかんせん処理速度が遅い…遅すぎる。PHP、VBA、VBScriptなどが該当します。(よくスクリプトなんて呼ばれているものたちです)
もっと言うと、たいていの場合はレンタルサーバと契約しても、それはあなたのためだけのサーバではありません。何人もの人が同時に使っています。共用サーバってやつです。
ゆえに、もっともっと処理速度が遅い!圧倒的に遅い!
C#とPHPを比較したとき、10~20倍くらい処理速度が違うのではないでしょうか。
- リサーチは鮮度が命
…と、よく言われるのに、商品データの取得にそんな時間をかけていられないのです。
まとめ
ちょっとPHPをディスりすぎてしまいましたが、PHP自体は非常にすばらしいものです。実際にわたしもよく利用しています。
すてきなwebサービスを提供するにはPHPの力が必要不可欠です。
ただ、個人利用のリサーチツールを作成するという用途にはどちらかというと不向きです。特別な理由がない限り選択すべきではないはずです。
特別な理由とは、OSがMacなのでVisual Studioが使えない!とか。
つまりわたしが言いたいことは、
ということです。
ランサーズやクラウドワークスでも、PHPで開発してくれ!というのが多いです。でもセキュアなプログラムにするとコスト増だし、エンジニア自身セキュリティを理解していない人が多いです。
今の時代はPHPのエンジニアがかなり多いのでしょう。Amazon APIを使ったサンプルコードもたくさん見つかります。
Amazon APIを使ってPHPでプログラムを作ろう!という意見には、ちょっと待った!と言いたいです。