ということで、予定よりもずいぶん早くAmazon対応が終わりそう、ということで
欲張って楽天もサポートしたいと思います。
欲張ってっていうほど無駄じゃなくて、やっぱお酒に関しては基本的に楽天のほうが強いんですよね。Amazonだと見当たらない商品も結構売ってあったりします。
で、僕がアフィリエイトをするのにあたって一番欲しい情報って、実は
画像なんですよね。
銘柄それぞれの画像を自前で用意するなんて
どう考えても非現実的なので、プログラムの力を借りて引っ張ってきたいんですよね。で、商品ぜんぶがAmazonにあるんならそれでいいんですけど、Amazonで引っかからない商品の場合どうするんだ、って感じです。
ここで普通ならサポートを切る選択をするんですが、楽天のほうが商品数が多い、という知識を知ってしまってるので
じゃあ楽天から画像引っ張ってこようってなるワケです。
楽天なら、Laravelに対応したライブラリはなくとも、PHPに対応したライブラリぐらいあるでしょうし、まあ最悪生コードでなんとか書ける程度のAPIは提供してるはずなので、この調子で書いちゃいましょうよ、と。そういうお話です。
で、肝心の楽天APIですが・・・・・・
なんかよくわかんねぇなぁ・・・・・・。
よくわからんのが
ジャンルIDってやつですね。たぶんここで「洋酒」だったりを設定できればいいんですけど、そのIDを調べるところから始めなくてはいけません。
まじで探し方がよくわからなさすぎたので
楽天の全ジャンルをCSVにしてくれた方がいらっしゃったのでこちらを参照にしますと、
ビール・洋酒は
510915というIDみたいなのでこれを採用します。もっと深い階層にいけば洋酒だけとかリキュールだけとか絞れるんですけど、プログラムが難しくなるだけなのでこのへんで妥協です。
とりあえず検索自体はできるということがわかりました。6本入りとかいうわけわからんのを引っ張ってきてるのが気になりますが・・・・・・。
普通に検索してもこれしかヒットしなかったので、この商品はそういうものだと解釈しておきます。まともな商品を選択するアルゴリズムまでは書いてられないので、画像さえ手に入ればヨシとします。ちょっと気持ち悪いですけどね。
Amazonとデータ構造が違うので、楽天のデータ構造がどういう感じなのかを調べる必要があります。
画像URLはここになるみたいです。最後の_ex部分を消せばオリジナルサイズが入手できるみたいですね。
さて、アイテムURLと検索URLはこのまま使えないので考える必要があります。
アイテムURL、つまり商品ページのURLに対してはアフィリエイトのIDを加えないといけないんですが、さてどうしよう?ということでマニュアルを探します。
なるほど。APIのパラメーターにアフィリエイトIDを加えればいいとのことなので、該当するパラメーターを探せばいいみたいですね。楽天ディベロッパーみたいな名前のとこでアプリ登録とかいうのをして、アプリIDを発行することでアフィリエイトIDをリクエストに含めることができるっぽいですね。なんかえらくぐちゃぐちゃしてる感しますけど。
これで商品URLは引っ張ってこれますけど、一応検索用URLも持っておきたいところです。これはこちら側で手動で作る必要があるみたいなのですが、まぁ機械的に作れるURLなはずなので構造を調べてみましょう。
さきほどの
バーディネXOの場合、アフィリエイトリンクはこうなるみたいです。hgc以降がアフィリエイトIDで、検索結果のURLが?pc=以降ですね。
おそらく%2Fがスラッシュなので、https://hb.afl.rakuten.co.jp/hgc/1b4d10fe.495cae9c.1b4d10ff.043052a0/?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2583%2590%25E3%2583%25BC%25E3%2583%2587%25E3%2582%25A3%25E3%2583%258DXO%2Fの部分を変えれば検索結果のURLになりそうですね。この部分にURLエンコードした文字列をぶちこめば検索結果のURLを生成できますね。
ということで必要な情報が揃いそうなので実装に入りたいと思います。
具体的な実装方法は
このブログの記事がわかりやすかったのでコピペです。
ということで次回、実装編です。