【问题标题】:Get CS:GO Inventory from Steam API for my React APP从 Steam API 为我的 React APP 获取 CS:GO 库存
【发布时间】:2021-12-05 17:56:24
【问题描述】:

由于从 https://api.steampowered.com/IEconItems_730/GetPlayerItems/v1/ 请求库存被永久禁用,我必须使用 https://steamcommunity.com/profiles//inventory/json/2

由于 CORS,我必须使用我的后端来提供请求的数据。但是当我经常请求时,我的请求会被拒绝,我的应用无法大规模运行。

所以问题应该很简单:如何避免我的请求被拒绝? 欢迎任何想法和建议。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: reactjs steam-web-api


【解决方案1】:

Steam 库存端点的速率限制非常严格,但您可以使用几个不同的端点。

交易报价端点
https://steamcommunity.com/tradeoffer/new/partnerinventory

这是您与某人开立交易报价时使用的端点。它可用于获取您自己的库存以及贸易伙伴。必需的参数是partner,这是用户的 Steam 64 Id,appid 在 CS:GO 的情况下是 730,contextid 对于大多数 Valve 游戏来说是 2。我不知道确切的限制,但我已经在一个月内大约每秒一次达到这个端点,最少有 429 个响应。要使用此端点,您需要有一个有效的 Steam 会话并随请求一起发送正确的 cookie。这也只会返回可交易的物品。

库存端点 #1
http://steamcommunity.com/inventory/STEAM64ID/APPID/CONTEXTID

另一个具有相同参数但在 URL 中的清单端点。我使用这个端点作为第一个端点的后备,但我发现如果第一个端点受到速率限制,那么这个端点也是如此。也就是说,这个限制的速度要快得多,所以最好改用第一个。

库存端点 #2
http://steamcommunity.com/profiles/STEAM64ID/inventory/json/APPID/CONTEXTID

您正在使用的端点。我根本不使用这个,但作为另一个后备可能值得知道。


并非所有这些都返回相同的数据格式,因此请注意。对于任何规模适中的网站来说,每秒一个库存是一个相当稳定的速度,尤其是在您限制用户刷新库存的能力的情况下。如果您需要更多,则必须开始研究代理。

【讨论】:

  • 非常感谢您的详细解答!为了降低请求率,我可能会使用缓存并限制用户的刷新次数。
猜你喜欢
  • 2014-11-16
  • 2015-01-23
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 2017-01-01
  • 1970-01-01
  • 2014-11-04
相关资源
最近更新 更多