Что такое steam api

Немного о Steam Web Api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Сервис цифровой дистрибуции Steam от компании Valve становится всё более популярным среди игроков. По состоянию на январь 2013, через Steam распространяется более трёх тысяч товаров, на которые действуют ежедневные, срединедельные и скидки на выходные дни, а количество зарегистрированных аккаунтов превысило 60 миллионов.

В настоящее время, в рунете очень мало информации об использовании Steam Api (или же Steam Web Api). В данном топике я расскажу о том, как получать нужную вам информацию из сообщества Steam для интеграции её в свои сайты, блоги или же просто получить информацию о пользователе, не заходя в Steam.

Начнем с главного. После несложных действий, я создал одну php страницу, которая, по запросу имени пользователя, либо SteamID или SteamcommunityID, выводит множество подробной информации о профиле Steam. Информации там намного больше, чем предоставляют аналогичные англоязычные сервисы.

Посмотреть работу страницы можно здесь. При желании, можно существенно доработать сервис, например добавить возможность определить, какие игры есть на аккаунте конкретного пользователя, и сколько они стоят (как когда-то делал steamcalculator).

Кому интересен исходный код моей страницы, алгоритм определения типа вводимых данных или алгоритм перебора одинаковых xml параметров, можете написать мне тут, или в контактной информации на той странице.

Открываем капот Steam
Информацию о пользователе Steam можно получить несколькими способами. Наиболее популярные из них, это:
— использовать именно Steam Web Api, который предлагают они нам сами (но предоставленной информации там увы не много)
— получать и обрабатывать данные сообщества напрямую, в формате xml.
— получать и обрабатывать данные сообщества напрямую, в формате json.

Первый способ мне не особо интересен, я пользовался сразу двумя оставшимися.

XML
Получить информацию о пользователе довольно просто. Достаточно лишь ввести в адресную строку браузера запрос в виде:
steamcommunity.com/profiles*SteamID*/?xml=1
Например:
steamcommunity.com/profiles/76561198036370701/?xml=1
(к слову, если пользователь имеет CustomURL, то адрес ссылки изменится с «. /profiles/*SteamID*/. » на «. /id/*CustomURL*/. «)

Эту страницу можно ловить и обрабатывать при помощи cURL или (что для меня проще) функции simplexml_load_file();, например:
$slf = «http://steamcommunity.com/profiles/76561198036370701/?xml=1»;
$url = simplexml_load_file($slf);

JSON
Прежде всего вам понадобится apikey. Зарегистрировать его можно здесь.

Получать и обрабатывать эти данные можно командой file_get_contents, а в последствии сконвертировать всё в массив примерно вот таким способом:
$urljson = file_get_contents(«http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=*apikey*&steamids=*steamid*»);
$data = (array) json_decode($urljson)->response->players[0];

Например:
$urljson = file_get_contents(«http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=38A3BEAE3EFA726E4438207D08CB0EC7&steamids=76561198036370701»);
$data = (array) json_decode($urljson)->response->players[0];

А выводить, например содержимое блока profileurl строчкой кода:

Подводим итог
Методы получения информации о пользователе Steam не ограничиваются теми, что я привел. Те ссылки, которыми я получал данные используются только для получения суммарной (общей) информации. Отдельно можно получать список игр пользователя, список друзей, список групп, предметов инвентаря и мастерской и многое другое.

На основе полученных данных можно также сделать сервис генерации баннеров, юзербаров, профайлов для форумов и блогов, по аналогии с сервисом steamprofile.

Из недостатков работы сервиса можно выделить то, что в пик нагруженности серверов Steam, для получения информации о пользователе время запроса данных может колебаться от 0,1 до 12 секунд, а также часто втречается ошибка 503 (сервис недоступен), приходится отправлять запрос заново. Как вариант решения проблемы — не отправлять запрос чаще, чем раз в 10 секунд. Если у вас есть другие способы решения проблемы, пишите.

Источник

Что такое steam api

Valve provides these APIs so website developers can use data from Steam in new and interesting ways. They allow developers to query Steam for information that they can present on their own sites. At the moment the only APIs we offer provide item data for Team Fortress 2, but this list will grow over time.

Steam Web APIs available

ISteamNews: Steam provides methods to fetch news feeds for each Steam game.

ISteamUserStats: Steam provides methods to fetch global stat information by game.

ISteamUser: Steam provides API calls to provide information about Steam users.

ITFItems_440: Team Fortress 2 provides API calls to use when accessing player item data.

Obtaining an Steam Web API Key

All use of the Steam Web API requires the use of an API Key. You can acquire one by filling out this form. Use of the APIs also requires that you agree to the Steam API Terms of Use.

Output Formats

Format can be any of:

If you do not specify a format, your results will be returns in the JSON format.

Steam OpenID Provider

Steam can act as an OpenID provider. This allows your application to authenticate a user’s SteamID without requiring them to enter their Steam username or password on your site (which would be a violation of the API Terms of Use.) Just download an OpenID library for your language and platform of choice and use https://steamcommunity.com/openid as the provider. The returned Claimed ID will contain the user’s 64-bit SteamID. The Claimed ID format is: https://steamcommunity.com/openid/id/

Valve Brand and Links

If you are using OpenID on your site, we request that you use one of the following buttons as your link to the Steam sign in page.

Источник

Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Пример:

Форма авторизации открывается в маленьком окне. Поле адреса страницы пустое. Логин и пароль не заполняются автоматически, если сохранены в браузере.

Чуть более продвинутая версия скам формы.Форма авторизации открывается в маленьком окне. Поле адреса поддельное, сделано в виде HTML элемента. Логин и пароль не заполняются автоматически, если сохранены в браузере.

Без действий со стороны пользователя, получить этот ключ невозможно.

Пользователь пополняет какой-нибудь сайт скинами, но деньги на сайт не приходят. Оказалось, он отправил их мошеннику, однако проверочный код трейда совпадал.

Как это происходит?
1) Пользователь нажимает кнопку пополнение счет на сайте

2) Бот сайта присылает пользователю трейд с секретным кодом

4) Мошенник, используя API ключ пользователя, отменяет трейд, который прислал бот настоящего сервиса

5) Мошенник меняет ник своего бота и присылает пользователю трейд с таким же проверочным кодом и с таким же списком вещей.

6) Пользователь принимает трейд, даже не замечая подмены. Процесс скорее всего полностью автоматизирован.

Еще можно попробовать продать что-то дорогое или пополнить счет с помощью SkinPay

Источник

Steam Web API

Contents

Formats

Every method can return its results in 3 different formats: JSON, XML, and VDF. Each format represents the data described herein differently:

VDF (Valve Data Format)

If no format is specified, the API will default to JSON.

Interfaces and method

All interfaces and method are self-documented through the ISteamWebAPIUtil/GetSupportedAPIList call. This can be found here.

When passed a key= parameter, GetSupportedAPIList will show all APIs that your key can access. Without it (as above), it only displays APIs that do not require an API key.

Game interfaces and methods

Team Fortress 2 functions are described at http://wiki.teamfortress.com/wiki/WebAPI.

GetNewsForApp (v0002)

GetNewsForApp returns the latest of a game specified by its appID.

Arguments

Result layout

An appnews object containing:

GetGlobalAchievementPercentagesForApp (v0002)

Returns on global achievements overview of a specific game in percentages.

Arguments

GetPlayerSummaries (v0002)

Returns basic profile information for a list of 64-bit Steam IDs.

Arguments

Return Value

Some data associated with a Steam account may be hidden if the user has their profile visibility set to «Friends Only» or «Private». In that case, only public data will be returned.

Public Data
Private Data

GetFriendList (v0001)

Returns the friend list of any Steam user, provided their Steam Community profile visibility is set to «Public».

Arguments

Result data

The user’s friends list, as an array of friends. Nothing will be returned if the profile is private.

GetPlayerAchievements (v0001)

Returns a list of achievements for this user by app id

Arguments

Result data

A list of achievements.

GetUserStatsForGame (v0002)

Returns a list of achievements for this user by app id

Arguments

GetOwnedGames (v0001)

GetOwnedGames returns a list of games a player owns along with some playtime information, if the profile is publicly visible. Private, friends-only, and other privacy settings are not supported unless you are asking for your own personal details (ie the WebAPI key you are using is linked to the steamid you are requesting).

Arguments

Result layout

GetRecentlyPlayedGames (v0001)

GetRecentlyPlayedGames returns a list of games a player has played in the last two weeks, if the profile is publicly visible. Private, friends-only, and other privacy settings are not supported unless you are asking for your own personal details (ie the WebAPI key you are using is linked to the steamid you are requesting).

Arguments

Result layout

Community pages parameters

Community data

The Steam community data interface (XML only) is described here: https://partner.steamgames.com/documentation/community_data

Calling Service interfaces

There is a new style of WebAPI which we refer to as «Services». They function in many ways like the WebAPIs you are used to, the main difference being that all service APIs will accept their arguments as a single JSON blob in addition to taking them as GET or POST parameters. To pass in data as JSON, invoke the webapi with a parameter set like:

Note that the JSON will need to be URL-encoded. The «key» and «format» fields should still be passed as separate parameters, as before. POST requests are supported as well.

You can identify if a WebAPI is a «Service» by the name of the interface; if it ends in «Service» like «IPlayerService», then it supports this additional method of passing parameter data. Some Service methods have parameters that are more complex structures and require this different input format.

Источник

Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Что такое steam api. Смотреть фото Что такое steam api. Смотреть картинку Что такое steam api. Картинка про Что такое steam api. Фото Что такое steam api

Введение

В Steam встроен основанный на HTTP веб-API, который может использоваться для доступа ко многим функциям Steamworks. Этот API содержит публичные методы, доступ к которым может получить любое приложение, способное отправить HTTP-запрос: к примеру, игровой клиент или сервер. Он также содержит защищённые методы, которые требуют аутентификации, и доступ к ним могут получить доверенные бэкенд-приложения.

Формат запроса

Как и API Steamworks на С++, веб-API разделён на множество интерфейсов, содержащих связанные методы. Формат URI для запроса к API таков:

Большинство методов поддерживают несколько обязательных и необязательных параметров. В зависимости от метода эти параметры необходимо отправлять в запросе как параметр GET или POST.

Аутентификация

Массивы параметров

Служебные интерфейсы

Обратите внимание, что JSON должен быть закодирован в виде URL. Поля key и format по-прежнему передаются как отдельные параметры. Запросы POST также поддерживаются.

Определить, является ли метод служебным, можно по названию: если в окончании названия есть «Service» ( к примеру IPlayerService), то метод поддерживает дополнительный способ передачи параметров. Параметры некоторых служебных методов имеют более сложную структуру, и для них обязателен этот дополнительный способ.

Пример запроса

В следующем примере запрос возвращает 3 последние новости о Team Fortress 2.
Запрос уточняет, что ответ должен быть в формате JSON, и включает в себя обязательный параметр appid (AppID Team Fortress 2 равен 440) и необязательный параметр — число возвращаемых результатов.

Дополнительная информация об этом вызове доступна здесь: ISteamNews/GetNewsForApp

Получение Steam ID пользователя

Соображения об адресах узлов веб-API и брандмауэрах

Публичный веб-API ( api.steampowered.com ) находится за пограничным сервером кэширования Akamai, так что IP-адреса, которые вы увидите, будут разниться в зависимости от того, где вы находитесь, а также от других факторов. IP-адреса могут часто меняться, так что если вы выполняете запросы из-за брандмауэра, ограничивающего исходящие запросы, продолжайте читать.

Список разрешений для IP-адресов

Мы позволяем добавлять в список разрешений IP-адреса для вызовов веб-API. Это дополнительный слой защиты на случай того, если ваш ключ веб-API попадёт в чужие руки. Он делает так, что принимаются только вызовы веб-API с разрешённых IP-адресов. Когда в список разрешений будет добавлен любой IP-адрес, запросы с остальных адресов будут блокироваться и возвращать ответ 403 (доступ запрещён).

Добавлять IP-адреса в список разрешений просто. На любой странице группы, у которой есть ключ веб-API, нажмите на кнопку «Управление ключом веб-API» и следуйте дальнейшим инструкциям.

У каждого ключа веб-API свой список разрешений, и добавлять в него что-либо необязательно.

Обратите внимание: добавление в список разрешений не гарантирует защиту ключа веб-API. Защищайте свой ключ и никому его не сообщайте, а если он попал в чужие руки — немедленно смените его.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *