получить инвентарь CSGO с API Steam

Хорошо, мне нужно получить инвентарь csgo с API Steam. я использую этот URL

https://api.steampowered.com/IEconItems_730/GetPlayerItems/v1key=$api_key&steamids =$пар

и я использую этот URL для доступа ко всем элементам csgo.

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

проблема 1, я не могу понять возвращаемое значение в первом URL-адресе. нет названия товара, изображения и ... . вот так вернется

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

проблема 2, когда используется второй URL для получения всех скинов csgo. он просто возвращает ванильные скины. как я могу получить полные скины, такие как другие веб-сайты: opskins, bitskins, csgolounge и .... .

Я знаю, что в Stackoverflow есть много подобных вопросов, но ни один из них не отвечает так, как я понимаю.

и я прошу прощения за мой плохой английский.


person Community    schedule 25.08.2016    source источник


Ответы (1)


Для моего проекта я использую другой 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