SteamKit through PHP

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
testncrash
Капитан
Капитан
Сообщения: 459
Зарегистрирован: 25.02.2007
Благодарил (а): 22 раза
Поблагодарили: 33 раза
Контактная информация:

#16 Сообщение 01.11.2014, 19:22

http://api.steampowered.com/ISteamApps/GetAppList/v2
В чем сложность? Распарсить json, и написать функцию-проверку, чтоб знать является ли appid игрой?

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#17 Сообщение 01.11.2014, 20:59

testncrash сложность была только в незнании где взять эту ссылку) спасибо

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

testncrash
Капитан
Капитан
Сообщения: 459
Зарегистрирован: 25.02.2007
Благодарил (а): 22 раза
Поблагодарили: 33 раза
Контактная информация:

#18 Сообщение 01.11.2014, 21:11

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

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#19 Сообщение 01.11.2014, 21:45

testncrash, да вот - http://steamcommunity.com/dev/apikey
я тут первые скромные шаги в программировании делаю, и разбираться в стим апи для меня крайне сложно. спасибо за пример теперь стало понятнее как пользоваться http://api.steampowered.com/ISteamWebAP ... ist/v0001/

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#20 Сообщение 12.03.2015, 20:15

как получить список групп в которых состоит пользователь(id и имя достаточно)? GetUserGroupList выдает список из 6-7-значных id групп, а из названия ResolveVanityURL выдает в виде 1035827914XXXXXXXX(цифры совсем другие). в общем нужен список групп, желательно в джсон -- может у моего апи-ключа недостаточно прав?
также нужен список имеющихся DLC

eldest
Разработчик
Разработчик
Сообщения: 302
Зарегистрирован: 17.03.2008
Откуда: такие как я?
Поблагодарили: 2 раза
Контактная информация:

#21 Сообщение 13.03.2015, 21:32

не могу понять что именно тебе надо, если можешь напиши по шагам что делаешь, короткие id (32ух битные) получаемые через GetUserGroupList это и есть список id групп, что бы получить из них 64ёх битный id их просто надо конвертнуть, ну или сложить id32bit+103582791429521408,
103582791429521408 это:
type = 7
instance = 0
universe = 1
информация об id https://developer.valvesoftware.com/wiki/SteamID

но ещё проще способ такой и api key не нужен...
steamcommunity.com/profiles/76561198007641867?xml=1

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#22 Сообщение 14.03.2015, 13:12

спасибо что разжевали) при попытках конвертации я умножал на 2 (W=Z*2+V+Y) и ничего не получалось.)
еще GetUserGroupList выдает подписки к играм (из списка Discovery) id ведет к официальным группам типа http://steamcommunity.com/games/dota2 .их можно отфильтровать? я состою в 4 группах, а выводит 97.
GetOwnedGames выдает только список игр, длц - не выводит

eldest
Разработчик
Разработчик
Сообщения: 302
Зарегистрирован: 17.03.2008
Откуда: такие как я?
Поблагодарили: 2 раза
Контактная информация:

#23 Сообщение 15.03.2015, 11:34

эта формула W=Z*2+V+Y только для id в формате STEAM_X:Y:Z, V=76561197960265728 для профиля пользователя

Вот на гитхабе нашел, используй для конвертации https://github.com/xPaw/SteamID.php
Требует extension php_gmp.dll которое прописывается в php.ini
На моём сервере вылезла ошибка в строке 27 на SteamID.php
там декларируется $AccountTypeChars, я просто заменил "[" > "(" и "]" > ")" и после знака "=" написал array
я не в курсе что за extension для php меняет способ декларации array() на []

Код: Выделить всё

//$sid = new SteamID( <id> );
// <id> - Должен быть в формате string, 'STEAM_X:Y:Z', '[g:1:4]' или '103582791429521412'
// формат STEAM_X:Y:Z для групп вообще не подходит
// так как там не присутствует определение какого типа id (AccountType) TypeIndividual (1 - пользователь) или TypeClan (7 - группа)

$gid = 4; // Valve Group id
$sid = new SteamID;
$sid->SetAccountID($gid);
$sid->SetAccountUniverse(SteamID::UniversePublic);
$sid->SetAccountInstance(SteamID::AllInstances);
$sid->SetAccountType(SteamID::TypeClan);
echo "http://steamcommunity.com/gid/".$sid->ConvertToUInt64()."/";
по поводу списка Discovery, я вообще не в курсе что это за список такой))) и что такое DLC тоже не знаю))))

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#24 Сообщение 15.03.2015, 17:13

спасибо - пока могу обойтись простым сложением)
про дисковери -- Изображение при нажатии кнопки подписаться - в GetUserGroupList добавляется новая группа(правда не совсем см ссылку предыдущем посте)


steamcommunity.com/profiles/76561198007641867?xml=1 - выводит только первые 3 группы


блина - порылся на гит хабе нашел ISteamUserOAuth/GetGroupSummaries, кажется, это то что нужно, но у меня его нет в GetSupportedAPIList. при попытке использовать вижу что метод рабочий - но ему не нравятся посылаемые гет параметры. может какя авторизация нужна..

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#25 Сообщение 15.03.2015, 18:26

eldest &raquo; Вс мар 15, 2015 6:09 pm писал(а):используй GetSupportedAPIList вместе со своим api key
только с ним и использую -- может от того что зарегал на домен второго уровня? то есть так-то GetGroupSummaries в списке есть?
eldest &raquo; Вс мар 15, 2015 6:09 pm писал(а):, у меня группы выводятся в конце
точно - просто у меня всего 4 группы внизу одна есть сразу не заметил. однако без GetGroupSummaries от айди смысла пока не много - парсить html нерационально)
Последний раз редактировалось Pechen 15.03.2015, 18:38, всего редактировалось 3 раза.

eldest
Разработчик
Разработчик
Сообщения: 302
Зарегистрирован: 17.03.2008
Откуда: такие как я?
Поблагодарили: 2 раза
Контактная информация:

#26 Сообщение 15.03.2015, 18:27

но у меня его нет в GetSupportedAPIList
используй GetSupportedAPIList вместе со своим api key
Хотя не получиться, посмотрел, тоже нету...
при попытке использовать вижу что метод рабочий - но ему не нравятся посылаемые гет параметры. может какя авторизация нужна..

Код: Выделить всё

OAUTH GroupSummaries
Request:
GET <BASE_URL>/ISteamUserOAuth/GetGroupSummaries/v0001
Parameters:
access_token:   [Required, STR] The OAuth_Token that was received during authentication
steamids:       [Required, STR] A comma-separated list of SteamID64 values to be queried.
Нужен access_token, как его получить я не в курсе))
steamcommunity.com/profiles/76561198007641867?xml=1 - выводит только первые 3 группы
не может этого быть, получается первые 3 выводит с названием. посмотри список дальше, у меня группы выводятся в конце

Код: Выделить всё

<group isPrimary="0">
<groupID64>103582791434277245</groupID64>
</group>
<group isPrimary="0">
<groupID64>103582791434672565</groupID64>
</group>
<group isPrimary="0">
<groupID64>103582791436373074</groupID64>
</group>
<group isPrimary="0">
<groupID64>103582791437322714</groupID64>
</group>
</groups>
</profile>

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#27 Сообщение 15.03.2015, 18:43

похоже нужно сначала авторизоваться через пост запрос

через ISteamUserAuth/AuthenticateUser

eldest
Разработчик
Разработчик
Сообщения: 302
Зарегистрирован: 17.03.2008
Откуда: такие как я?
Поблагодарили: 2 раза
Контактная информация:

#28 Сообщение 15.03.2015, 18:50

или же просто, на том же гитхабе найти написанный WebApi клиент и посмотреть

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#29 Сообщение 19.03.2015, 18:24

посмотрел в стим конденсере -- они там тупо - файл гет контентс и парсят. похоже ничего другого не остается

Ответить