Для моего проекта я использую другой URL-адрес API Steam,
"http://steamcommunity.com/profiles/*insert steamId*/inventory/json/730/2"
Вы можете попробовать использовать свой steamID и вставить его в свой браузер, и вы увидите, как будет выглядеть ответ. Это то, с чем вы будете работать.
Если вы сделаете запрос с этим URL-адресом, вы получите ответ с объектом json, который состоит из двух частей. Одна часть называется rgInventory(ie. data.rgInventory)
и содержит идентификаторы для каждого скина в пользовательском csgo-инвентаре. Вторая часть называется rgDescriptions(ie. data.rgDescriptions)
и содержит информацию/имя/URL изображения для каждого скина. Чтобы добавить информацию к скинам пользователя в rgInventory
, вам нужно сравнить classId
для каждого элемента как в rgInventory
, так и в rgDescriptions
. classId
— это идентификатор, который определяет тип оружия, поэтому classid не уникален.
Итак, что я делаю, так это использую два for-loops
и сравниваю идентификаторы, чтобы я мог добавить 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;
}
}
}
Поэтому, если классы обоих элементов одинаковы, я добавлю нужную информацию в переменную «ids», которая в данном случае является копией rgInventory
. Когда for-loops
выполнено, я отправляю переменную ids в качестве обратного вызова.
Не стесняйтесь задавать вопросы, и извините, если это сбивает с толку. Не забудьте ввести URL-адрес, который я связал с вашим профилем Steam, в браузере и посмотрите результат.
Надеюсь, поможет!
person
D.Soderberg
schedule
28.08.2016