(O+P)ut

アウトプット



(O+P)ut

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

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

スポンサーリンク

はじめに

以下の記事では楽天APIを利用せずに特定の宿の直近の日付の価格情報を取得しましたが

今回は楽天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

書籍のランキングが取得できます。

このApplicationIDは自ら発行が必要で、このIDが誤っていると以下のようなエラーとなります。

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

リクエストが成功するとこちらもJSON形式で情報が表示されます。

尚、出力される情報をwcコマンドで確認すると分かりますが改行なしの文字列となっています。

cat hoge.json | wc
      0     908   84767

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

出力される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と同じように一意に発行されています。

f:id:mtiit:20201031220530p:plain
デベロッパーツールから確認可能

同情報を入れたJSONの結果に対して同コマンドを打てば以下のようにリンクが取得できます。

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

終わりに

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

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


他の記事を読む