获取某人的 Steam 库存

2023-11-29

我正在制作一个需要访问用户的 Steam 库存的网站。我找到了一个 API 来获取 Team Fortress 2 库存、Dota 2、CS:S、CS:GO 和 Portal 2。但我没有找到任何用于获取 Steam 库存的 API。

是否可以访问用户的 Steam 库存?


新端点

截至 2016 年 12 月,有一个用于获取库存的新端点。下面列出的旧端点仍然有效(目前)。两者似乎都受到高度限制。

新的库存路径是:

http://steamcommunity.com/inventory/<PROFILEID>/440/2?l=english&count=5000

有了这条新路,l是您想要接收数据的语言count是一次接收返回的项目数。最大值为 5000。

您也可以使用这个新端点进行分页:

http://steamcommunity.com/inventory/<PROFILEID>/440/2?l=english&count=5000&start_assetid=468336866

这将拉取以 assetid 开头的接下来 5000 个项目468336866.

终点返回一个大的 json 对象,其结构如下:

{ 
    'assets': <list>,
    'descriptions': <list>,
    'total_inventory_count': integer,
    'success': 1/0,
    'rwgran': integer
}

我不完全确定什么rwgran就在此时。

The assets键,返回如下所示的数据:

[{'amount': '1',
         'appid': '440',
         'assetid': '4985815666',
         'classid': '134',
         'contextid': '2',
         'instanceid': '0'},
        {'amount': '1',
         'appid': '440',
         'assetid': '4985815941',
         'classid': '22989188',
         'contextid': '2',
         'instanceid': '0'},
        ...
]

The descriptionskey 包含这样的条目。请注意,这比旧端点包含更多信息。

[{'actions': [{'link': 'http:\\/\\/wiki.teamfortress.com\\/scripts\\/itemredirect.php?id=241&lang=en_US',
                            'name': 'Item Wiki Page...'}],
               'appid': 440,
               'background_color': '3C352E',
               'classid': '134',
               'commodity': 0,
               'currency': 0,
               'descriptions': [{'type': 'text',
                                 'value': 'Is an enemy player questioning your skills, personal hygiene, and\\/or ancestry?\nUse these stylish firearms to challenge them to a duel!\nSee the Mann Co. Catalog for full details.'},
                                {'type': 'text', 'value': ' '},
                                {'color': '00a000',
                                 'type': 'text',
                                 'value': 'This is a limited use item.  Uses: 5'}],
               'icon_url': 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgECbwgfYh_3vTRKhs_ZAfOeD-VOyo4z4clTizJqwQcpYOHnNDFmcweRVqQPCqVq91C-WCM26pFnB4PjofUWJ1uAGDnHsA',
               'icon_url_large': 'fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgECbwgfYh_3vTRKhs_ZAfOeD-VOyo4z4clTizJqwQcpYOHnNDFmcweRVqQPCqVq91C-WCM26pFnB4PjofUWJ1uAGDnHsA',
               'instanceid': '0',
               'market_hash_name': 'Dueling Mini-Game',
               'market_marketable_restriction': 0,
               'market_name': 'Dueling Mini-Game',
               'market_tradable_restriction': 7,
               'marketable': 0,
               'name': 'Dueling Mini-Game',
               'name_color': '7D6D00',
               'tags': [{'category': 'Quality',
                         'color': '7D6D00',
                         'internal_name': 'Unique',
                         'localized_category_name': 'Quality',
                         'localized_tag_name': 'Unique'},
                        {'category': 'Type',
                         'internal_name': 'TF_UsableItem',
                         'localized_category_name': 'Type',
                         'localized_tag_name': 'Usable Item'},
                        {'category': 'Class',
                         'internal_name': 'Scout',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Scout'},
                        {'category': 'Class',
                         'internal_name': 'Sniper',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Sniper'},
                        {'category': 'Class',
                         'internal_name': 'Soldier',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Soldier'},
                        {'category': 'Class',
                         'internal_name': 'Demoman',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Demoman'},
                        {'category': 'Class',
                         'internal_name': 'Medic',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Medic'},
                        {'category': 'Class',
                         'internal_name': 'Heavy',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Heavy'},
                        {'category': 'Class',
                         'internal_name': 'Pyro',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Pyro'},
                        {'category': 'Class',
                         'internal_name': 'Spy',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Spy'},
                        {'category': 'Class',
                         'internal_name': 'Engineer',
                         'localized_category_name': 'Class',
                         'localized_tag_name': 'Engineer'}],
               'tradable': 1,
               'type': 'Level 5 Usable Item'},
      ...
]

与旧方法一样,assets and descriptions通过以下方式链接classid同时。


旧端点

更新:自 2022 年 11 月 11 日欧洲中部时间 00:00 起,此端点部分不可用

该端点将返回{ "success": false, "Error": "Unsupported request" }在某些地区(取决于帐户地区)。预计所有地区都将在不久的将来关闭此端点。

如果目标的配置文件权限设置适当,您可以获得一些有限的信息。

您可以查看结果json使用这两个链接中的任何一个进行测试(以及礼物,如果设置了适当的权限)清单的文件

http://steamcommunity.com/id/<CUSTOMURL>/inventory/json/753/1 http://steamcommunity.com/profiles/<PROFILEID>/inventory/json/753/1

CUSTOMURL是玩家选择使用的用户友好名称。玩家可以随时更改此设置。如果您正在编写网页,我假设您知道如何获取这条信息,对吗?PROFILEID是您创建帐户时 Steam 为玩家提供的 64 位 ID。这是不可更改的,并且在使用 OpenID 实现登录时由 Steam 返回。

使用这些 URL 时,有几种可能的响应。第一个是用户是否将其个人资料设置为私人。

{"success":false,"Error":"This profile is private."}

第二个是库存中“东西”的列表

{
    "success":true,
    "rgInventory":
    {
        "1586670077416875609":
        {
            "id":"1586670077416875609",
            "classid":"149742033",
            "instanceid":"0",
            "amount":"1",
            "pos":1
        },
        "1586670077416875905":
        {
            "id":"1586670077416875905",
            "classid":"149742033",
            "instanceid":"0",
            "amount":"1",
            "pos":2
        },
        "1586670077416877092":
        {
            "id":"1586670077416877092",
            "classid":"149742033",
            "instanceid":"0",
            "amount":"1",
            "pos":3
        }
    },
    "rgCurrency":[],
    "rgDescriptions":
    {
        "149742033_0":
        {   "appid":"753",
        "classid":"149742033",
        "instanceid":"0",
        "icon_url":"ZyjGwQD4ogROtSm7KvtdP99kDHBEiKxKm3Gg7pMaBJyiPu4iS_PzF6QhOUdOwk-m0WhXYQ7X8AbNL6Hz1VxOnq4-8iBC5MlBuXMuElaaCrHQLww9T5S1Ecoqo_PYWg==",
        "icon_url_large":"a6FEz5nbBlvu8bGd1oDggdPtjn7dqwgVOzU4yG9huSKut2ws0tBXSARloWGyufIY3eHVb5f0VFltaznVKSfzK6amZz7FjFhcTTm6Maz860eOrMo937A=",
        "icon_drag_url":"",
        "name":"Steam Trading Card Beta",
        "market_name":"",
        "name_color":"",
        "background_color":"",
        "type":"Gift",
        "tradable":1,
        "marketable":0,
        "descriptions":[
            {"value":"Steam Trading Card Beta Access - Extra Copy"},
            {"value":"Grants early access to the Steam Trading Cards beta, game badges, and the new profile. Join the Steam Trading Cards Group and post your feedback in the Discussions area. Select \u201cAdd to my game library\u201d to activate."}
            ],
        "actions":[
            {"name":"View in store","link":"http:\/\/steamcommunity.com\/tradingcards"}
            ]
        }
    }
}

如果该 URL 是您的 ID 并且您已登录 Steam,您还可以看到列出的项目Gift。否则,这些默认情况下是隐藏的。

由于这不是官方 API,因此没有太多关于此特定模式的文档。然而,似乎其中的项目rgInventory链接到中的项目reDescriptions by classid。编写解析器作为读者的练习。

这些显示了测试版访问。

如果您正在查找交易卡信息,请更改1在上面的 URL 中6

http://steamcommunity.com/id/<CUSTOMURL>/inventory/json/753/6 http://steamcommunity.com/profiles/<PROFILEID>/inventory/json/753/6

这些的架构布局似乎是相同的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取某人的 Steam 库存 的相关文章

  • Google feed api 已弃用,我如何找到网站的 rss feed? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用 Google Feed API 来查找特殊关键字或网站的 rss feed 现在这个 api
  • WebSocket 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 Linux 上使用 C 访问 WebSocket API 我见过不同的图书馆 比如libweb
  • 外部 API 的 CORS 问题 - 通过 PostMan 工作,但不能使用 Axios 进行 HTTP 请求 [重复]

    这个问题在这里已经有答案了 正在开发一个涉及汽车数据的新 Laravel 项目 并找到了一个免费的查找 API http www carqueryapi com documentation api usage 一个示例端点是 https w
  • 如何在AngularJS控制器中调用API?

    我需要在 AngularJS 控制器中执行这些 API 调用 任何例子都会有帮助 app post user auth users auth app get user logout helpers isAuthenticated users
  • Jawbone UP API oAuth 和访问令牌

    我今天开始深入研究 Jawbone 的 UP API 整个身份验证过程中一切似乎都很顺利 问题是 一旦我取回访问令牌 它始终是相同的令牌 它在我的任何请求中都不起作用 并且我无法使用刷新令牌端点更改它 oAuth 设置 url params
  • API向后兼容性的最佳实践

    我正在开发一个与 JSON API 进行通信的 iPhone iPad Android 应用程序 该应用程序版本的第一个版本已经完成 现在正在进行其他开发阶段 在其他阶段 应用程序需要与新版本的 API 集成 并允许用户访问其他功能 例如新
  • 使用 oAuth 或其他方式实施访问

    我正在尝试想办法向其他第三方网站开放网站及其部分数据库 类似于 Twitter 让网络应用程序连接到其数据库以检索数据并可能存储数据的方式 我最初的研究让我想到了 oAuth 或者是 openID 我需要做的是让第三方网站登录网站上的用户帐
  • 通过 API 设置 Nest 目标湿度

    我在文档中找不到有关设置 Nest 恒温器目标湿度的任何内容 我绝对必须能够远程设置湿度 有人成功地做到了这一点吗 湿度不是一个可写字段
  • Microsoft Cognitive API 不断告诉我:“消息”:“输入数据不是有效的图像或受密码保护。”

    我有图像的 base64 字符串 我正在尝试将其转换为 应用程序 八位字节流 因为这就是 api 所需要的 我认为我已经通过创建一个 blob 来做到这一点 正如您从我的函数中看到的那样 当我进行 api 调用时 我不断收到标题中的消息 有
  • PHP NuSoap 中的复杂类型

    我正在使用 PHP 中的 NuSoap 库构建一个 Web 服务 我的 Web 服务将充当客户端和供应商现有的 Web 服务之间的中间层 因此 客户端不是直接连接到供应商 而是连接到我的 Web 服务 我的 Web 服务连接到供应商并获取响
  • OpenTok - 如何手动发布/取消发布?

    我查看了这些链接 http www tokbox com opentok api tools js documentation overview publish html http www tokbox com opentok api to
  • Aurelia Post 使用 http-fetch-client 生成选项请求

    我正在创建一个小型论坛 我们公司的人员可以使用 aurelia 为他们想要即时销售的商品或服务发布广告 我有一个广告页面列表 工作正常 每个广告的详细信息页面都工作正常 都使用来自 api 的 get 请求 然而 当有人想在广告上添加评论时
  • Android - API 级别 21 中的日期 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你好 我对 Android 还很陌生 目前我对本地日期 或我尝试过的任何其他日期格式 有一个大问题 L
  • 如何使用 Whatsapp Cloud API 发送短信

    我在使用 Whatsapp Cloud API 已于 5 月 22 日向公众发布 时遇到问题 我做了一切在入门 https developers facebook com docs whatsapp cloud api get starte
  • 通过命令行创建私有 github 存储库

    我希望能够通过命令行创建一个私人 github 存储库 我认为使用其余 API 应该可以做到这一点 但是我无法从文档中弄清楚如何做到这一点 这可能吗 The GitHub CLI https github com cli cli tool
  • 如何使用 json 谷歌翻译 api?

    我正在尝试使用来自 python 的 google 翻译和 utf 8 文本 如何调用json api 他们有一个将其嵌入 html 的文档 但我在任何地方都找不到合适的 API 或 wsdl 谢谢 拉斐尔 这是最终对我有用的代码 使用没有
  • 如何添加更多数据存储在 jenkins Rest api 中

    为了使问题变得简单 我知道我可以通过以下方式获取一些构建信息https jenkins server https jenkins server api json xml python 我获得了有关该构建记录的大量信息 但是 我想向该构建记录
  • 使用 Chrome TTS 的 SSML

    我试图通过强调等方式让 TTS 句子更加清晰 我正在使用Chrome TTS API http developer chrome com extensions tts html 这表明它接受SSML 格式的文档 http www w3 or
  • 获取发送 cURL 请求的用户的 IP 地址

    我想获取使用 php 中的 cURL POST 方法向我的服务器发送请求的用户的 IP 地址 我正在开发一个 Flight API 我将使用 cURL POST 方法获取请求 我必须获取客户端的 IP 地址并验证他的 IP 地址是否可用 如
  • 响应中的有效 JSON

    我正在开发客户端和服务器应用程序 遇到了一个有趣的问题 我们正在创建一个 Restful API 并通过 JSON 响应与客户端进行通信 执行 DELETE 时 我们将返回 200 OK 和空白响应 我们的客户收到 200 OK 但解析 J

随机推荐

  • Marshal (Ruby) 管道:将序列化对象发送到子进程

    我需要使用 Marshal 序列化 Ruby 中的对象 并通过管道将其发送到子进程 我怎样才能做到这一点 我的代码如下所示 我的问题在评论中 data Marshal dump data call sub process ruby r a
  • SQL 作业存在事务日志问题

    我有一个仅执行存储过程的 SQL 作业 每天早上当作业尝试运行时 我都会收到以下错误 当前事务无法提交 并且无法支持写入日志文件的操作 当我继续尝试重新启动作业时 它总是给我同样的错误 但是 如果我只是执行存储过程而不使用作业 它就可以正常
  • 如何在 Rails 4 中格式化 db:datetime 记录中的时间和日期?

    我有一个var在我看来 返回日期和时间datetime数据库记录为 UTC 格式 输出如下所示 2014 01 21 03 13 59 UTC 我该如何格式化它 Date parse var 会给 gt Tue 21 Jan 2014在 I
  • 与 DrawText 函数冲突

    我正在开发一个多平台应用程序 在一个组件中我有一个名为 DrawText 的类方法 不幸的是 我收到一个链接器错误 仅在 Windows 上 指出此类的 DrawTextW 方法存在未解析的外部符号 我之前见过以 Text 结尾的其他方法
  • 将值从一种形式传递到另一种形式

    我有两个表单 我需要将值从 form1 textbox1 传递到 form2 variable Form1 string Ed En public string En1 get return En set En value public s
  • 包裹在 Horizo​​ntalScrollView 中的 TabWidget 不随 ViewPager 滚动

    我必须使用TabHost代替ActionBarTabs为了使它们可以滚动 我已经包裹了我的TabWidget in a HorizontalScrollView 但是HorizontalScrollView不按照以下方式自行滚动ViewPa
  • Slowcheetah 已安装,但没有转换选项

    我在 Visual Studio 2013 中有一个使用 MVC 5 和 EF 6 的 NET 4 5 项目 我想要对 app config 进行转换 I ve installed the SlowCheetah project via N
  • 为矩阵的每一行查找 5 个连续的数字 >= 3

    我有以下矩阵 mdat lt matrix c 6 2 4 4 5 1 6 2 1 5 1 3 3 5 4 5 1 4 2 2 4 3 4 4 4 4 3 3 1 1 3 2 3 3 3 3 3 2 2 2 1 2 2 2 2 2 1 1
  • Chrome 开发者工具中的 Websocket

    目前正在与Socket IO使用网络套接字 我有几个关于如何在 chrome devtools 中解释 websockets 的问题 当我们在 chrome 中得到以下输出时 问题 该方法仍然由HTTPget 方法动词 难道是因为这个HTT
  • 在 Altair 中生成“闪避”或“并排”条形图/柱形图?

    如果之前有人问过这个问题 我深表歉意 但我正在寻找一种方法来创建 躲避 的条形图 language from ggplot2 在 python 中使用 Altair 库 我知道 Altair 有这个例子 import altair as a
  • 将逗号分隔值转换为多行

    我有一个这样的表 ID NAME Dept ID 1 a 2 3 2 b 3 c 1 2 Department 是另一个以 dept id 和 dept name 作为列的表 我想要的结果是 ID Name Dept ID 1 a 2 1
  • 自包含数据库?

    有没有一种方法可以将 小型 独立的关系数据库与 Windows 应用程序一起分发 而不需要用户安装其他依赖项 例如 MS Access SQL Server MySQL SQLite 等 只有应用程序将访问数据库 而不是用户直接访问 微软
  • 使用 google calendar api 时,Android 给出 IOException 并显示“无法创建目录:/tokens”

    尝试将日历快速入门 API 实现到 Android 中 但是当我声明令牌时 如图所示 private final String TOKENS DIRECTORY PATH tokens 然后在构建器中使用该字符串 GoogleAuthori
  • Python pandas 在数据框中拆分文本和数字

    我有一个数据框 df1 其列名称 Acc Number 作为第一列 数据如下所示 Acc Number ASC100 1 MJT122 ASC120 4 XTY111 我需要创建一个新的数据框 df2 它有两列 第一列包含文本部分 第二列包
  • 通过 NLTK 的斯坦福 NLP Tagger - tag_sents 将所有内容拆分为字符

    我希望有人有这方面的经验 因为除了 2015 年关于 NERtagger 的错误报告 可能是相同的 之外 我在网上找不到任何评论 不管怎样 我正在尝试对文本进行批处理 以绕过性能不佳的基本标记器 据我了解 tag sents 应该有所帮助
  • 创建其中包含单个数组的锯齿状\多维数组

    我目前遇到一个脚本问题 该脚本根据传递给它的一组动态服务器 优先级构建数组 例如 基于以下输入 server1 200 server2 200 我想构建一些看起来像 arr at this point I have an empty arr
  • Primefaces - ui:repeat 组件不更新

    我在 ajax 更新 ui repeat 时遇到问题 更新是从 ui repeat 外部的 commandButton 触发的 请参阅下面的代码 需要变量 priceHour 来计算其他价格 周 月
  • 在django中添加用户到组

    如何通过组名将用户添加到 django 中的组 我可以做这个 user groups add 1 add by id 我该怎么做这样的事情 user groups add name groupname add by name 使用组模型和组
  • AccessControlException:访问被拒绝 - FilePermission

    我使用的是JRE7 我已经使用 jarsigner 签署了 jar 文件 但我仍然得到例外 java security AccessControlException access denied java io FilePermission
  • 获取某人的 Steam 库存

    我正在制作一个需要访问用户的 Steam 库存的网站 我找到了一个 API 来获取 Team Fortress 2 库存 Dota 2 CS S CS GO 和 Portal 2 但我没有找到任何用于获取 Steam 库存的 API 是否可