楽天APIアフィリエイトリンクが取得できない原因と対処法

楽天APIアフィリエイトリンクが取得できない原因と対処法

楽天API(楽天商品検索API)を使ってシステムからアフィリエイトリンクを取得して使用しているのですが、 ログを見ていたら正常にアフィリエイトリンクを取得できていないことがわかりました。解決に向けてたくさん試したので、確認事項と対処方法をまとめます。

目次

レスポンスは正常に帰ってきているか ?

まずは、今のリクエストの結果の状態を確認しましょう。例えば、このようなリクエストを投げているとします。リクエストURLは楽天APIテストフォームからお借りしています。

楽天API
楽天API
https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?format=json&keyword=%E6%A5%BD%E5%A4%A9&genreId=555086&elements=itemCode%2CaffiliateUrl&applicationId=xxxxxxxxxx

レスポンスが正常に返ってこない場合

自分のapplication_idの設定が抜けているとか、APIのパスが間違えているなど基本的な設定部分の確認が必要そうです。楽天APIのドキュメントを見ながら要素に過不足がないか確認してください。

あわせて読みたい
Rakuten Web Service: Ichiba Item Search API (version:2022-06-01) | API API Documentation for searching for items from Rakuten Ichiba using keywords, genres, item codes, etc.

レスポンスは正常に返り、他項目は取得できるがアフィリエイトリンクのみ取得できない場合

{
  "Items": [
    {
      "Item": {
        "affiliateUrl": "",
        "itemCode": "shop:10000000"
      }
    },
    {
      "Item": {
        "affiliateUrl": "",
        "itemCode": "shop2:10000000"
      }
    }
 ]
}

上記のようなアフィリエイトリンクが空のレスポンスが届く場合、リクエストパラメータにaffiliate_idが入っていないアフィリエイトリンクの取得できない商品である可能性を確認しましょう。

レスポンスは正常に返るがJsonの中身が空である場合

{}

私はこの状態でした。一緒に「店:商品」体系の商品コードを取得していませんか?商品コードと一緒にアフィリエイトリンクを取得をしないようにクエリパラメータを変更したら解決しました。楽天の「店:商品」体系の商品コードがPHPやJavaなどの処理で都合が悪く、正しくJson形式にデータを処理できないみたいです。

解決策:リクエストを2回に分ける

1度目に商品コードを取得するAPIリクエストを投げます。

https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?format=json&keyword=%E6%A5%BD%E5%A4%A9&genreId=555086&elements=itemCode&applicationId=xxxxxxxxxx

こんなレスポンスが届きました。

{
  "Items": [
    {
      "Item": {
        "itemCode": "cube:10010899"
      }
    },
    {
      "Item": {
        "itemCode": "urbene:10013041"
      }
    }
  ]
}

レスポンスから商品コードが取得できたので、2度目のAPIリクエストでは商品コードをキーとしてアフィリエイトリンクを取得します。2件取得できた商品コードのうち上のもののアフィリエイトリンクを取得しましょう。

https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?format=json&itemCode=cube%3A10010899&elements=affiliateUrl&applicationId=xxxxxxxxxx

レスポンスが届きました。アフィリエイトリンクを取得できました!

{
  "Items": [
    {
      "Item": {
        "affiliateUrl": "http://hb.afl.rakuten.co.jp/hgc/xxxxxxxxxxx"
      }
    }
  ]
}

楽天APIはアマゾンAPIよりも親切!

問題は解決しましたか?楽天APIは登録のみで使用を開始することができ、アフィリエイト収益が多くないと使えないアマゾンのAPIよりもとても親切です。楽天APIをうまく使いこなしてアフィリエイトリンクを取得しましょう!

楽天APIドキュメントはこちら

困った時はまず公式ドキュメントを見ましょう!

あわせて読みたい
Rakuten Web Service: Ichiba Item Search API (version:2022-06-01) | API API Documentation for searching for items from Rakuten Ichiba using keywords, genres, item codes, etc.

プログラミング関連の記事はこちら

Crescit eundo
プログラミング | Crescit eundo 未経験からエンジニア転職したアラサー女の筆者によるプログラミング関連の学びをまとめています。Java、MySQL、Wordpressが多いです。
楽天APIアフィリエイトリンクが取得できない原因と対処法

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

ピープル大学(UoPeople)でコンピューターサイエンスを学んでいます。趣味はプログラミング。

コメント

コメントする

目次