(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【楽天API】商品のアフィリエイトリンクをcurlコマンドで自動的に取得する

スポンサーリンク

はじめに

楽天APIを利用し、楽天市場ランキングAPIで取得した売れ筋商品のアフィリエイトリンクをコマンドで取得する手順について紹介します。

利用コマンド
$ curl --version
curl 7.52.1 (x86_64-pc-linux-gnu) libcurl/7.52.1 OpenSSL/1.0.2u zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3

楽天商品ランキングAPI

API情報の詳細を公式ドキュメントで確認した通りですが、例えば以下のApplicationIDの欄にアプリID/デベロッパーID(applicationId)を入れると

curl https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20170628?format=json\&applicationId=xx\&genreId=101287\&period=realtime

書籍のランキングが取得できます。尚、ジャンルとして書籍が取れるのは「genreId」で指定している数値列が書籍に紐づくから。こちらは楽天ランキングで各ジャンルのURIを見るとその数値列が確認可能です。

また、同じく引数として利用するApplicationIDは自ら発行が必要で、このIDが誤っていると以下のようなエラーとなります。

{"error":"wrong_parameter","error_description":"specify valid applicationId"}

発行は以下から行えます。

curlのリクエストが成功すると値はJSON形式で表示されます。

アフィリエイトリンクを確認する

出力されるJSONを確認すると以下の形式となっており

{
  "Items": [
    {
      "Item": {
        "affiliateRate": "3.0",
        "affiliateUrl": "",
        "asurakuArea": "",
        "asurakuClosingTime": "",
        "asurakuFlag": 0,
        "availability": 1,
        "carrier": 0,
        "catchcopy": "【 楽 天 ブ ッ ク ス な ら い つ で も 送 料 無 料 】 ",
        "creditCardFlag": 1,
        "endTime": "",
        "genreId": "101937",
        "imageFlag": 1,
        "itemCaption": "森  巧 尚  翔 泳 社 パ イ ソ ン イ チ ネ ン セ イ  タ イ ケ ン シ テ ワ カ ル カ イ ワ デ マ ナ ベ ル プ ロ グ ラ ミ ン
        "itemCode": "book:18843211",
        "itemName": "Python 1年 生  体 験 し て わ か る ! 会 話 で ま な べ る ! プ ロ グ ラ ミ ン グ の し く み  [ 森  巧 尚  ]",
        "itemPrice": "2178",
        "itemUrl": "https://item.rakuten.co.jp/book/15197920/",
        "mediumImageUrls": [
          {
            "imageUrl": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3193/9784798153193.jpg?_ex=128x128"
          }
        ],

上で見ても分かる通りJSONの中にはアフィリエイトリンクが入っていません。

# cat hoge.json | jq .Items[].Item.affiliateUrl
""
""
""
""
...

同リンクを取得すべく、curlコマンドの末尾に\&affiliateId=xxxとアフィリエイトID(affiliateId)を付与します。(このIDはapplicationIDと同じように一意に発行される)

デベロッパーツールから確認可能

同情報を入れて改めてcurlを打つと、JSONの中にてアフィリエイトが含まれるようになりました。

# cat hoge.txt | jq .Items[].Item.affiliateUrl
"https://hb.afl.rakuten.co.jp/hgc/xxx..."
...

終わりに

楽天でアフィリエイトをする際は楽天アフィリエイトのページからブラウザ操作にてURLやHTMLを発行することもできますが、本記事のようにAPIを叩くことで自動でリンクの取得も可能です。

メディア運営をしている方のご参考になれば幸いです。