使用 Steam 获取 CSGO 库存 API
get CSGO inventory with steam API
好的,我需要用 steam 获取 csgo 库存 API。我用这个 url
https://api.steampowered.com/IEconItems_730/GetPlayerItems/v1key=$api_key&steamids=$steamid
我用这个 url 访问所有的 csgo 物品。
https://api.steampowered.com/IEconItems_730/GetSchema/v2
问题 1,我无法理解第一个 url 中的 returned 值。没有项目名称、图像和...。
这就是它 return
"id": 547938992,
"original_id": 547938992,
"defindex": 13,
"level": 1,
"quality": 4,
"inventory": 53,
"quantity": 1,
"rarity": 1,
"attributes":
问题2,什么时候使用秒url获取所有csgo皮肤。它只是 return 的香草皮。我怎样才能像其他网站一样获得完整的皮肤:opskins、bitskins、csgolounge 和 ....
我知道 Whosebug 中有很多这样的问题,但 none 他们中的每个人都以我能理解的方式回答。
我很抱歉我的英语不好。
对于我的项目,我将另一个 url 用于 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
中拥有的皮肤中,您需要比较 rgInventory
和 rgDescriptions
中每个项目的 classId
。 classId
是决定武器类型的id,所以classid不是唯一的。
所以我正在做的是使用两个 for-loops
,并比较 ID,这样我就可以将 item_url
、market_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 相同,我会将我想要的信息添加到变量 "ids",在本例中是 rgInventory
的副本。 for-loops
完成后,我发送 ids 变量作为我的回调。
请随时提出问题,如果造成混淆,我们深表歉意。请记住在浏览器中输入我与您的 Steam 个人资料链接的 url 并查看结果。
希望对您有所帮助!
好的,我需要用 steam 获取 csgo 库存 API。我用这个 url
https://api.steampowered.com/IEconItems_730/GetPlayerItems/v1key=$api_key&steamids=$steamid
我用这个 url 访问所有的 csgo 物品。
https://api.steampowered.com/IEconItems_730/GetSchema/v2
问题 1,我无法理解第一个 url 中的 returned 值。没有项目名称、图像和...。 这就是它 return
"id": 547938992, "original_id": 547938992, "defindex": 13, "level": 1, "quality": 4, "inventory": 53, "quantity": 1, "rarity": 1, "attributes":
问题2,什么时候使用秒url获取所有csgo皮肤。它只是 return 的香草皮。我怎样才能像其他网站一样获得完整的皮肤:opskins、bitskins、csgolounge 和 ....
我知道 Whosebug 中有很多这样的问题,但 none 他们中的每个人都以我能理解的方式回答。
我很抱歉我的英语不好。
对于我的项目,我将另一个 url 用于 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
中拥有的皮肤中,您需要比较 rgInventory
和 rgDescriptions
中每个项目的 classId
。 classId
是决定武器类型的id,所以classid不是唯一的。
所以我正在做的是使用两个 for-loops
,并比较 ID,这样我就可以将 item_url
、market_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 相同,我会将我想要的信息添加到变量 "ids",在本例中是 rgInventory
的副本。 for-loops
完成后,我发送 ids 变量作为我的回调。
请随时提出问题,如果造成混淆,我们深表歉意。请记住在浏览器中输入我与您的 Steam 个人资料链接的 url 并查看结果。
希望对您有所帮助!