2013-06-06 164 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

相关问题