2013-06-06 12 views
6

6週間ほど、私たちはiTunes検索JSON APIに対して問題なく問合せを実行できました。今週から、一定数のリクエスト(約1K〜2K)後に403エラーが発生しました。これはレート制限の問題であると想定しています。おそらく実装した新しいポリシーです。我々が見落としている別の説明がありますか?iTunes検索サーバーで禁止されているJSON APIの返信

+0

6月4日からApple iTunes RSSフィードから大量の403を受け取りましたが、WWDC – tszming

答えて

14

価格と評価を得るには、iTunes Search APIを使用して、検索ではなく検索を行っていると思います。

この仮定が真であれば、クエリーに複数のADAM IDをカンマで区切って表示することで、検索リクエストを「バッチ」できます。

例えば、 -

https://itunes.apple.com/us/app/9-innings-2013-pro-baseball/id530061728?mt=8

https://itunes.apple.com/us/app/homerun-battle-2-free/id491221570?mt=8

- 米国では、これらのアプリケーションの両方の結果を得るために、あなたはこれを行うだろう: https://itunes.apple.com/us/lookup?id=491221570,530061728

を私は制限は、クエリごとに50個のIDであると考えています。

approximately 900K apps currently live in the App Storeがある場合、バッチ処理を行う前に、均等にリクエストを分散して〜625回のクエリ/分が実行されることがわかります。 (900K/24時間/ 60分== 625)

ただし、50のグループでバッチすると、約13クエリ/分で表示されます (1回あたり900K/50回/ 24時間/ 60分= = 12.5)。これは許可された限度内で十分です。

... @ Crashalot - アプリのおすすめを行っている場合は、話してください。

+0

これは本当に良い戦略のように聞こえる、私はこれも試してみる必要があります。 –

+2

制限は実際にはクエリあたり200ですが、403の問題はこれに関連していません。 1つのIDを持つクエリでも403エラーが返されますが、Appleが検索APIに対して行うことができるHTTP要求の数について厳しい規則を適用している可能性があります – Cat

+0

最近この問題に遭遇しました。その制限を超えてはならない5000のクエリをAppleサーバーに送信する必要があります。 – benck

1

私はレート制限を公開しているとは思っていませんが、存在すると仮定するのはかなり安全だと思います。実行している1-2kのリクエストのタイムスケールは何分、何時間、何日ですか?

不要なクエリを防ぐために、キャッシングを実装することをお勧めします。あなたがこれをやっていないなら、おそらくそれを調べるべきです。もう1つの選択肢はenterprise partner feedですが、アクセスするにはiTunesの関連会社である必要があります。

+0

に関連するかどうかは分かりません。可能な場合は間違いなくキャッシュしますが、必要なものの1つはアプリの価格です。これは毎日変わる可能性があります。チェックする唯一の方法は、毎日すべてのアプリの価格を取得することです。私たちのために別の選択肢がありますか?ありがとう! – Crashalot

+0

@ Crashalot - 数時間かけて負荷を分散しようとしましたか?あなたは毎日同じ時間にあなたのすべての要求を爆破していますか? –

+0

こんにちは@TedHosmann。私たちは人々がインディー・デベロッパーからの偉大なアプリを見つけ出すのを助けようとしています。私たちはあなたがitunesアフィリエイトグループで働いていることがわかり、あなたの意見を大切にしています。評価データを取得するための認可された方法は何ですか?それはEPFファイルにはありません。これが評価データを取得する唯一の方法だと思われるため、私たちはJSON APIに頼っています。数時間にわたって負荷を分散したり、スクリプトが実行されたときに負荷が分散して評価データを取得するための承認された方法であれば変更できます。 – Crashalot

関連する問題