使用Steam API获取CSGO库存

时间:2016-08-25 10:18:04

标签: php api steam

好的,我需要使用steam API获取csgo库存。我用这个网址

https://api.steampowered.com/IEconItems_730/GetPlayerItems/v1key= $ API_KEY&安培; steamids = $ steamid

我使用此网址访问所有csgo项目。

https://api.steampowered.com/IEconItems_730/GetSchema/v2

问题1,我无法理解第一个网址中返回的值。没有项目名称,图像和....... 这是它将如何返回

          "id": 547938992,
            "original_id": 547938992,
            "defindex": 13,
            "level": 1,
            "quality": 4,
            "inventory": 53,
            "quantity": 1,
            "rarity": 1,
            "attributes":

问题2,何时使用第二个网址获取所有csgo皮肤。它只是返回香草皮。我怎样才能像其他网站一样获得完整皮肤:opskins,bitskins,csgolounge和.......

我知道在Stackoverflow中有很多这样的问题,但没有一个能回答我能理解的方式。

我很抱歉我的英语很差。

1 个答案:

答案 0 :(得分:2)

对于我的项目,我使用另一个网址来获取Steam的API,

"http://steamcommunity.com/profiles/*insert steamId*/inventory/json/730/2"

您可以尝试使用steamID并将其粘贴到浏览器中,您将看到响应的样子。这就是你将要使用的。

如果您使用此URL发出请求,您将获得一个包含两个部分的json对象的响应。其中一部分称为rgInventory(ie. data.rgInventory),其中包含用户csgo-inventory中每个皮肤的ID。第二部分称为rgDescriptions(ie. data.rgDescriptions),包含每个皮肤的info / name / img url。要将信息添加到用户在rgInventory中拥有的皮肤,您需要比较classIdrgInventory上每个项目的rgDescriptionsclassId是决定它是哪种武器的id,因此classid不是唯一的。

所以我正在做的是使用两个for-loops,并比较一下ID,这样我就可以添加item_urlmarket_name等。到rgInventory数组我然后我作为回调发送出去。像这样(javascript):

            var ids = getID(data.rgInventory);
            var item = getItems(data.rgDescriptions);

            for (var i = 0; i < ids.length; i++) {
                for (var k = 0; k < item.length; k++) {
                    if (ids[i].classid == item[k].classid) {
                        ids[i].market_name = item[k].market_name;
                        ids[i].icon_url = item[k].icon_url;
                        ids[i].tradable = item[k].tradable;
                    }
                }
            }

因此,如果两个项目的classid相同,我会将我想要的信息添加到变量&#34; ids&#34;在这种情况下是rgInventory的副本。当for-loops完成后,我将ids-variable作为回调函数发送出去。

随意提问,如果这令人困惑,请抱歉。请记住在浏览器中输入我与您的Steam配置文件关联的网址,并查看结果。

希望它有所帮助!