如何使用PHP或JavaScript请求Steam API超过10000次?

时间:2014-12-07 06:37:03

标签: javascript php ajax json api

我需要为所有商品价格调用超过10000的Steam市场API。我想将它们保存在我的MySQL数据库中。但我的要求总是崩溃。有没有办法为太多的请求调用API?

 file_get_contents("http://steamcommunity.com/market/priceoverview/?country=US&currency=1&appid=570&market_hash_name=$marketHashName")

示例:

  

http://steamcommunity.com/market/priceoverview/?country=US&currency=1&appid=570&market_hash_name=Dragonclaw%20Hook

4 个答案:

答案 0 :(得分:5)

Steam API仅限于100,000 requests per day - 无论一天是在24小时内,还是基于日历日,都不是很清楚。我过去没有任何问题地从同一个IP地址发出了数千个请求。

您是否收到403响应代码?如果是这样,您可能会达到速率限制。如果使用多个IP地址会有所帮助,我也会感到惊讶,因为速率限制可能与您的API密钥有关。

答案 1 :(得分:2)

正如您在the Steam Web API Terms of Use中看到的那样:

  

您每天只能拨打十万(100,000)次Steam Web API。如果您遵守这些API使用条款,Valve可能会批准更高的每日呼叫限制。

您没有使用需要Web API密钥的API。因此,您的请求不限于每天100,000个,而是每10秒请求大约10个请求。您可以每秒发送一次请求,或者一次发送10个请求,然后等待10秒。

答案 2 :(得分:1)

您基本上需要通过不同的IP地址将请求拆分为多个请求,而不是1个IP发送10,000个请求。例如,应该是10个IP在每个请求之间发送1000个请求,大约500ms。否则steam / Akamai将禁止你的IP进行洪水或ddos尝试。同样,10,000个请求是很多请求,您将需要更好/更多的基础架构甚至尝试有效地执行此操作。

答案 3 :(得分:1)

我知道这是一个老问题,但由于我正在做一些研究,包括Steam工作,我想这可以帮助一些人。

首先,我们处理大量请求的方式是启动(在您的情况下为10,000个)调用请求并使用数据的进程 - 延迟100毫秒,因为否则我们的数据库无法完成所有命令都会破坏保存的数据。我不知道你是否可以毫不拖延地发送所有这些请求。

其次,每个日历日的限制 。您可以在一天内发送100,000个请求,从午夜起发送另外100,000个请求。

另一点是,我不知道发送超过100,000个请求时会发生什么。所以要小心。