楽天アフィリエイトAPIを使うと、楽天市場内の商品を取得したり指定時期のホテルを検索することができます。
ここでは楽天アフィリエイトAPIを実際に使っていてみつけた注意点についてまとめておきます。
楽天アフィリエイトAPIとは?
楽天が提供するAPIです。
APIとは、URLリンクを経由するなどの方法で楽天の提供するサービスが利用可能になります。
具体的には
- 楽天市場API
- 楽天ブックスAPI
- 楽天トラベルAPI
- 楽天ぶっくまーくAPI
- 楽天レシピAPI
- 楽天KOBOAPI
- 楽天GORAAPI
が提供されています。
それぞれ楽天の提供するサービス(ブックスやトラベルなど)の商品情報をAPI経由で取得することができます。
https://webservice.rakuten.co.jp/
楽天ではアフィリエイトサービスを提供しています。
APIでは自分のアフィリエイトIDを組み合わせることができるため、アフィリエイト用サイトの作成にも威力を発揮します。
楽天アフィリエイトAPI利用の注意点
楽天のAPIはREST型です。
特定のURLを作成してアクセスするだけで、商品情報を取得することができます。
トークンを事前に発行するといった面倒な手続きがないため、プログラミング初心者でも取り組みやすいと思います。
楽天市場APIで大きい画像ファイルを得るには?
API経由で画像のリンクを取得できます。
しかし取得できたリンクを表示すると画像が小さいです。
実際には、画像は大きいものが送られてきています。
画像ファイルとして提供されているリンクの文末にある「?_ex=128x128」の部分を消してあげれば大丈夫でした。
対策としては「$imgurl = str_replace("?_ex=128x128","",$imgurl);」のように「str_replace」で置き換えればよいでしょう。
PHPでのサンプルソースは以下となります。
すでにデータを取得してjson_decodeをかけているものとします。
function htmlItems(){
foreach($myjson->Items as $i){
print "<a href='".$i->Item->itemUrl."' target='_blank'>". $i->Item->itemName."</a>";
if(isset($i->Item->mediumImageUrls)){
foreach($i->Item->mediumImageUrls as $img){
$imgurl = $img->imageUrl;
$imgurl = str_replace("?_ex=128x128","",$imgurl);
print "<img src='".$imgurl."'><BR><BR>";
break;
}}
}
楽天トラベルAPIで範囲指定がうまくいかない?
楽天トラベルAPIでは範囲指定が可能です。
これは緯度、経度を指定してその近くにあるホテルを探せるというものです。
注意点としては、範囲は3キロまでとなります。
それ以上の数値を指定すると該当ホテルが出てきません。
また、GeoCoding APIなどで取得した緯度や経度の数値をそのまま渡すとだめです。
その場合には「&datumType=1」というのをリンク引数として追加します。
APIアクセス用リンクを作るサンプルとしては以下のようになります。
$url = "https://app.rakuten.co.jp/services/api/Travel/VacantHotelSearch/20170426?";
$url .= "applicationId={アプリケーションID}";
$url .= "&affiliateId={アフィリエイトID}";
$url .= "&format=xml";
$url .= "&latitude={緯度}";
$url .= "&longitude={経度}";
$url .= "&datumType=1";
楽天APIの地域コードは?
地域コードは
一応こちらからCSVに出して利用するのもいいかもしれません。