SteamKit through PHP

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
Аватара пользователя
Simbiat
Steam Content Support
Steam Content Support
Сообщения: 629
Зарегистрирован: 18.08.2008
Поблагодарили: 29 раз
Контактная информация:

#1 Сообщение 29.10.2013, 16:13

Так как SteamDB решил забанить мой IP, а я использовал их базу для получения ряда информации об играх для базы в DarkSteam мне нужна тепреь альтернатива. Правильная альтернатива видится в SteamKit. Однако мне надо как-то его вызывать из PHP скрипта для получения имени, описания и фич (single-player, co-op, trading cards, .etc) игры.
Кто-нибдуь может поделиться идеями как это сделать?
DarkSteam R.I.P.
SilverSteam is less so

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#2 Сообщение 29.10.2013, 20:08

Неплохим вариантом было-бы написать на C# программку, используя библиотеку SteamKit, которая будет делать всю работу. Взаимодействие можно устроить через сокеты (или zeromq - классная штука как раз для такого), если нужно в реальном времени, или, если не нужно, то просто можно складывать информацию в файлы/базу.
А вообще, если твой айпи забанили потому, что ты не позаботился о кешировании, то и со SteamKit (c Valve API) может произойти то же самое.

Аватара пользователя
Simbiat
Steam Content Support
Steam Content Support
Сообщения: 629
Зарегистрирован: 18.08.2008
Поблагодарили: 29 раз
Контактная информация:

#3 Сообщение 30.10.2013, 08:05

MOZGIII писал(а):Неплохим вариантом было-бы написать на C# программку, используя библиотеку SteamKit, которая будет делать всю работу. Взаимодействие можно устроить через сокеты (или zeromq - классная штука как раз для такого), если нужно в реальном времени, или, если не нужно, то просто можно складывать информацию в файлы/базу.
А вообще, если твой айпи забанили потому, что ты не позаботился о кешировании, то и со SteamKit (c Valve API) может произойти то же самое.
так вто-то и дело, что я бозаботился.. У меня только при первоначальном заполеннии базы было много запросов,а потом - только при обновлении приложений.

С C# у меня плохо. Точнее вообще никак. Я vb.net-то меньше года как узнал и то лишь потому, что Gwolf2u начал класть на проект...
DarkSteam R.I.P.
SilverSteam is less so

Renaissance
Полковник
Полковник
Сообщения: 6942
Зарегистрирован: 03.06.2009
Благодарил (а): 2390 раз
Поблагодарили: 2807 раз
Контактная информация:

#4 Сообщение 30.10.2013, 12:51

ИМХО, при таких задачах данное решение должно крутиться 24/7 выполняя свою задачу по заданному расписанию. Такие решения чаще работают на серверах, которые в свою очередь чаще всего под управлением GNU/Linux.

Это я к чему? C# тут выглядит не очень хорошим вариантом в плане языка для реализации... Есть конечно Mono, но зачем?

Аватара пользователя
Simbiat
Steam Content Support
Steam Content Support
Сообщения: 629
Зарегистрирован: 18.08.2008
Поблагодарили: 29 раз
Контактная информация:

#5 Сообщение 30.10.2013, 14:49

так у меня как раз 24\7 же... Каждый час гонится скрипт, который проверяет есть ли обновления и делает всякое разное. А в ближайшее время ещё и торренты начнёт делать.... На данный момент он парсит страницы SteamDB, но так как они меня забанили...

Добавлено спустя 1 час 25 минут 51 секунду:
Не нужен мне SteamKit (= Big Picture HTTP API меня вполне устраивает...
http://store.steampowered.com/api/appde ... ids=$appid

Надо только научитсья это дело парсить через php ;)

Добавлено спустя 2 минуты 50 секунд:
ой, а в пхп даже готовая функция для этого есть (= вообще шикарно (=
DarkSteam R.I.P.
SilverSteam is less so

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#6 Сообщение 31.10.2013, 23:42

Simbiat
Не забудь про кеширование на этот раз, а то тебя и сами Valve забанят. %)

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

#7 Сообщение 01.11.2013, 18:10

Раз уж речь о Web api, писал я для него обертку для дельфы, чтоб использовать в десктоп приложениях, но перечитывая условия соглашения Steam Web api наткнулся на:
You agree to keep your Steam Web API key confidential, and not to share it with any third party. This license is personal to you and specific to your Application. You agree that you will be personally responsible for the use of your Steam Web API key.
Вопрос: как бы ключик спрятать, на тот случай если захочу приложение в паблик выложить ? Я так понимаю мне придется php скрипт написать и через него запросы слать, чтоб не "палить" api ключ ?

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#8 Сообщение 01.11.2013, 18:34

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

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

#9 Сообщение 01.11.2013, 18:44

Но можно держать сервер, через который пропускать запросы клиентов - и тогда ключ не придётся выкладывать в паблик - идея довольно простая.
Собственно это и пришло первым делом в голову, думал может есть каие-то другие решения , о которых я не знаю. Сам ключ отдельно и не предполагалось выкладывать в открытый доступ, он у меня в сорсах... просто народ нынче прошаренный, быстро выудят на какой url запросы шлются.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#10 Сообщение 01.11.2013, 18:53

testncrash
testncrash писал(а):в сорсах
Значит и в бинарнике - по сути эквивалентно выкладыванию. Ну, просто не на видном месте.
А по поводу URL - можно работать через SSL, дополнительно руками проверять сертификаты. Тогда будет уже тяжело подсмотреть его в URL.

Аватара пользователя
Simbiat
Steam Content Support
Steam Content Support
Сообщения: 629
Зарегистрирован: 18.08.2008
Поблагодарили: 29 раз
Контактная информация:

#11 Сообщение 02.11.2013, 09:28

вопрос возник у меня недавно. Точнее не вопрос, а идея. ДАбы не создавать другую тему, здесь задам, благо это также относится к DarkSteam: что лучше прямые запросы к БД из клиента или же запросы клиента к php страничке, которая уже делает все запросы и отвечает клиенту?
Мне кажется, что php страничка: безопансеее, так как из клиента убираются SQL-приблуды и не нужен какой-то левый дополнительный юзер в БД. Потенциально быстрее даже по умолчанию, а если какой-нить CDN использовать (CloudFlare и иже с ними), так, возможно ещё быстрее.
Что думают знатоки? (=
DarkSteam R.I.P.
SilverSteam is less so

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#12 Сообщение 02.11.2013, 11:35

Simbiat писал(а):прямые запросы к БД из клиента
Сложно придумать что-то более плохое, чем давать прямой доступ к БД из клиентского приложения. Помнится тут даже была тема о взломе одного аддона, как раз из-за такой ошибки.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#13 Сообщение 02.11.2013, 20:35

Simbiat
Самое популярное решение этой проблемы - это JSON API. Доступ к бд напрямую давать, очевидно, нельзя.

Аватара пользователя
Simbiat
Steam Content Support
Steam Content Support
Сообщения: 629
Зарегистрирован: 18.08.2008
Поблагодарили: 29 раз
Контактная информация:

#14 Сообщение 03.11.2013, 09:03

MOZGIII писал(а):Simbiat
Самое популярное решение этой проблемы - это JSON API. Доступ к бд напрямую давать, очевидно, нельзя.
ну, на момент написания, я не знал альтернатив (= ну кроме загрузки пхп страницы в самом клиенте. А потом мне пришла идея. ВОт её и буду вставлять в новом билде, наверное.
DarkSteam R.I.P.
SilverSteam is less so

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

#15 Сообщение 01.11.2014, 18:46

где взять список всех appID(только игр), а то перебирать в цикле не охота. нашел только на стимдб 4800 айдишников -- но как-то маловато, думаю, будет. еще интересно найти список всех игр что были в бандлах или раздавались массово.

Ответить