2013-06-06 112 views
6

對於六週左右的時間,我們已經能夠對iTunes搜索JSON API執行查詢而沒有問題。從本週開始,我們在一定數量的請求(大約1K - 2K)後開始發現403錯誤。我們假設這是一個限速問題,也許是他們實施的一項新政策。我們忽略了另一種解釋嗎?iTunes search在服務器上返回403禁止的JSON API

+0

我們也經歷過從蘋果iTunes RSS Feed的大量403從6月4日開始,不知道它是否與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個IDS 。

如果有approximately 900K apps currently live in the App Store,一些快速的數學表明,在分批之前,如果你平均分散你的請求,你會做~625個查詢/分鐘。 (900K/24小時/ 60分鐘== 625)

但是,如果你以50個組的方式對他們進行批量處理,那麼你正在查看大約13個查詢/分鐘 (每個請求900K/50/24小時/ = 12.5)。這應該在允許的範圍內。

... @ Crashalot - 如果你正在做應用推薦,那麼我們應該談談。

+0

這聽起來像是一個很好的策略,我就必須得試試這個。 –

+2

極限實際上200元的查詢,但403的問題是不是與此有關。甚至用一個ID查詢返回403錯誤,蘋果可能會在可以到搜索API – Cat

+0

我只是碰到了這個問題,最近進行的HTTP請求數執行更嚴格的規則,他們接受每查詢200個ID,只有你必須向Apple服務器發送5000個查詢,這不應超過其限制。 – benck

1

我不認爲有任何公佈的率限制,但我認爲它是相當安全的,假設它們確實存在。您正在運行的1-2k個請求的時間範圍是幾分鐘,幾小時,幾天?

Apple建議您實施緩存以防止不必要的查詢。如果你還沒有這樣做,那麼你應該看看它。另一種選擇是使用enterprise partner feed,儘管您需要成爲iTunes的附屬公司才能獲得訪問權限。

+0

有關,這是幾分鐘的時間。我們肯定會盡可能緩存,但我們需要的一件事是應用程序的價格,它可能每天都在變化。唯一的檢查方法是每天獲取每個應用程序的價格。你看到我們的另一種選擇嗎?謝謝! – Crashalot

+0

@Crashalot - 你有沒有試圖在幾個小時內傳播負載?你是否每天都在同一時間爆炸你的所有請求? –

+0

您好@TedHosmann。我們正試圖幫助人們從獨立開發者那裏發現優秀的應用程序 - 不一定是最受歡迎的應用程序。我們可以看到您在iTunes附屬團隊工作,並會喜歡您的輸入。獲得評級數據的被認可方式是什麼?它不在EPF文件中。我們只求助於JSON API,因爲它似乎是獲取評級數據的唯一方法。我們可以愉快地在幾個小時內分散負載,或者在腳本運行時更改,如果這是批准獲取評級數據的方式。 – Crashalot

相關問題