Steam Web API GetOwnedGames 多个 SteamID

Steam Web API GetOwnedGames multiple SteamIDs

我们正在尝试获取大量用户拥有的游戏,但我们的问题是一段时间后 API 调用限制(每天 100.000)开始生效,我们停止获取结果。

我们在调用中使用 'IPlayerService/GetOwnedGames/v0001/?key=APIKEY&steamid=STEAMID',它适用于第一个条目。

还有其他几个查询,如 GetPlayerSummaries 查询,需要多个 Steam ID,但根据文档,这个只需要一个。

是否有任何其他方式来组合/合并我们的查询?我们正在使用 Python 和 urllib.request 库来创建请求。

根据请求的负载,您有以下可能性:

  • 如果每个请求只带来最新的更新,您可以在收到达到每日限制的响应时序列化 Steam ID
  • 如果您能够通过请求负载控制接收到的数据,您可以采用多线程/多处理方法,该方法使用来自多个共享资源的请求查询和 Steam ID

正如@andreihondrari 在他的回答下的评论中间接指出的那样,可以请求获得一个 API 密钥,该密钥每天可以获得超过 100.000 次调用。这在 "License to Steam Web API & Steam Data" of the documentation:

部分说明

You are limited to one hundred thousand (100,000) calls to the Steam Web API per day. Valve may approve higher daily call limits if you adhere to these API Terms of Use.

这可能很复杂,并且有可能无法获得批准,但这几乎是您可以采用的唯一稳定方式。


此外,理论上您可以使用多个 Steam Web API 键,但是:

  • 每个 API 密钥仍然有 100.000 个限制 calls/day 因此您需要实施故障安全和已用密钥之间的转换,并且可能需要创建大量帐户。
  • 由于每个用户都有自己特定的好友列表和黑名单,因此 API 密钥可以 "see" 独占 Steam 社区的一部分(好友数据不是 public 否则)。因此,可能是您使用的 API 密钥无法 "see" 某个用户,而您本可以使用另一个密钥来正确 "see" 它。
  • 每个创建的帐户都需要一个唯一的电子邮件地址。

注意:根据 this post on Arqade

,拥有多个帐户实际上符合 Valves ToS