从 Steam API 为我的 React APP 获取 CS:GO 库存

Get CS:GO Inventory from Steam API for my React APP

自从 https://api.steampowered.com/IEconItems_730/GetPlayerItems/v1/ is permanently disabled I have to use https://steamcommunity.com/profiles//inventory/json/2

请求清单以来

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

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

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

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

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

清单端点#1
http://steamcommunity.com/inventory/STEAM64ID/APPID/CONTEXTID

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

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

您正在使用的端点。我根本不使用这个,但作为另一种后备方式可能值得了解。


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