SteamKit through PHP
- Simbiat
- Steam Content Support
- Сообщения: 629
- Зарегистрирован: 18.08.2008
- Поблагодарили: 29 раз
- Контактная информация:
Так как SteamDB решил забанить мой IP, а я использовал их базу для получения ряда информации об играх для базы в DarkSteam мне нужна тепреь альтернатива. Правильная альтернатива видится в SteamKit. Однако мне надо как-то его вызывать из PHP скрипта для получения имени, описания и фич (single-player, co-op, trading cards, .etc) игры.
Кто-нибдуь может поделиться идеями как это сделать?
Кто-нибдуь может поделиться идеями как это сделать?
DarkSteam R.I.P.
SilverSteam is less so
SilverSteam is less so
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Неплохим вариантом было-бы написать на C# программку, используя библиотеку SteamKit, которая будет делать всю работу. Взаимодействие можно устроить через сокеты (или zeromq - классная штука как раз для такого), если нужно в реальном времени, или, если не нужно, то просто можно складывать информацию в файлы/базу.
А вообще, если твой айпи забанили потому, что ты не позаботился о кешировании, то и со SteamKit (c Valve API) может произойти то же самое.
А вообще, если твой айпи забанили потому, что ты не позаботился о кешировании, то и со SteamKit (c Valve API) может произойти то же самое.
- Simbiat
- Steam Content Support
- Сообщения: 629
- Зарегистрирован: 18.08.2008
- Поблагодарили: 29 раз
- Контактная информация:
так вто-то и дело, что я бозаботился.. У меня только при первоначальном заполеннии базы было много запросов,а потом - только при обновлении приложений.MOZGIII писал(а):Неплохим вариантом было-бы написать на C# программку, используя библиотеку SteamKit, которая будет делать всю работу. Взаимодействие можно устроить через сокеты (или zeromq - классная штука как раз для такого), если нужно в реальном времени, или, если не нужно, то просто можно складывать информацию в файлы/базу.
А вообще, если твой айпи забанили потому, что ты не позаботился о кешировании, то и со SteamKit (c Valve API) может произойти то же самое.
С C# у меня плохо. Точнее вообще никак. Я vb.net-то меньше года как узнал и то лишь потому, что Gwolf2u начал класть на проект...
DarkSteam R.I.P.
SilverSteam is less so
SilverSteam is less so
-
- Полковник
- Сообщения: 6942
- Зарегистрирован: 03.06.2009
- Благодарил (а): 2390 раз
- Поблагодарили: 2807 раз
- Контактная информация:
ИМХО, при таких задачах данное решение должно крутиться 24/7 выполняя свою задачу по заданному расписанию. Такие решения чаще работают на серверах, которые в свою очередь чаще всего под управлением GNU/Linux.
Это я к чему? C# тут выглядит не очень хорошим вариантом в плане языка для реализации... Есть конечно Mono, но зачем?
Это я к чему? C# тут выглядит не очень хорошим вариантом в плане языка для реализации... Есть конечно Mono, но зачем?
- Simbiat
- Steam Content Support
- Сообщения: 629
- Зарегистрирован: 18.08.2008
- Поблагодарили: 29 раз
- Контактная информация:
так у меня как раз 24\7 же... Каждый час гонится скрипт, который проверяет есть ли обновления и делает всякое разное. А в ближайшее время ещё и торренты начнёт делать.... На данный момент он парсит страницы SteamDB, но так как они меня забанили...
Добавлено спустя 1 час 25 минут 51 секунду:
Не нужен мне SteamKit (= Big Picture HTTP API меня вполне устраивает...
http://store.steampowered.com/api/appde ... ids=$appid
Надо только научитсья это дело парсить через php ;)
Добавлено спустя 2 минуты 50 секунд:
ой, а в пхп даже готовая функция для этого есть (= вообще шикарно (=
Добавлено спустя 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
SilverSteam is less so
-
- Капитан
- Сообщения: 459
- Зарегистрирован: 25.02.2007
- Благодарил (а): 22 раза
- Поблагодарили: 33 раза
- Контактная информация:
Раз уж речь о Web api, писал я для него обертку для дельфы, чтоб использовать в десктоп приложениях, но перечитывая условия соглашения Steam Web api наткнулся на:
Вопрос: как бы ключик спрятать, на тот случай если захочу приложение в паблик выложить ? Я так понимаю мне придется php скрипт написать и через него запросы слать, чтоб не "палить" 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.
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
testncrash
Ключ нельзя спрятать если ты выкладываешь его в паблик (в любом виде). Но можно держать сервер, через который пропускать запросы клиентов - и тогда ключ не придётся выкладывать в паблик - идея довольно простая.
Можно ещё выкладывать без ключа, и просить пользователя ввести его, но тут пользователи должны уметь получить ключ.
Ключ нельзя спрятать если ты выкладываешь его в паблик (в любом виде). Но можно держать сервер, через который пропускать запросы клиентов - и тогда ключ не придётся выкладывать в паблик - идея довольно простая.
Можно ещё выкладывать без ключа, и просить пользователя ввести его, но тут пользователи должны уметь получить ключ.
-
- Капитан
- Сообщения: 459
- Зарегистрирован: 25.02.2007
- Благодарил (а): 22 раза
- Поблагодарили: 33 раза
- Контактная информация:
Собственно это и пришло первым делом в голову, думал может есть каие-то другие решения , о которых я не знаю. Сам ключ отдельно и не предполагалось выкладывать в открытый доступ, он у меня в сорсах... просто народ нынче прошаренный, быстро выудят на какой url запросы шлются.Но можно держать сервер, через который пропускать запросы клиентов - и тогда ключ не придётся выкладывать в паблик - идея довольно простая.
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
testncrash
А по поводу URL - можно работать через SSL, дополнительно руками проверять сертификаты. Тогда будет уже тяжело подсмотреть его в URL.
Значит и в бинарнике - по сути эквивалентно выкладыванию. Ну, просто не на видном месте.testncrash писал(а):в сорсах
А по поводу URL - можно работать через SSL, дополнительно руками проверять сертификаты. Тогда будет уже тяжело подсмотреть его в URL.
- Simbiat
- Steam Content Support
- Сообщения: 629
- Зарегистрирован: 18.08.2008
- Поблагодарили: 29 раз
- Контактная информация:
вопрос возник у меня недавно. Точнее не вопрос, а идея. ДАбы не создавать другую тему, здесь задам, благо это также относится к DarkSteam: что лучше прямые запросы к БД из клиента или же запросы клиента к php страничке, которая уже делает все запросы и отвечает клиенту?
Мне кажется, что php страничка: безопансеее, так как из клиента убираются SQL-приблуды и не нужен какой-то левый дополнительный юзер в БД. Потенциально быстрее даже по умолчанию, а если какой-нить CDN использовать (CloudFlare и иже с ними), так, возможно ещё быстрее.
Что думают знатоки? (=
Мне кажется, что php страничка: безопансеее, так как из клиента убираются SQL-приблуды и не нужен какой-то левый дополнительный юзер в БД. Потенциально быстрее даже по умолчанию, а если какой-нить CDN использовать (CloudFlare и иже с ними), так, возможно ещё быстрее.
Что думают знатоки? (=
DarkSteam R.I.P.
SilverSteam is less so
SilverSteam is less so
- Pr0Ger
- Модератор
- Сообщения: 1829
- Зарегистрирован: 16.01.2009
- Благодарил (а): 17 раз
- Поблагодарили: 214 раз
- Контактная информация:
Сложно придумать что-то более плохое, чем давать прямой доступ к БД из клиентского приложения. Помнится тут даже была тема о взломе одного аддона, как раз из-за такой ошибки.Simbiat писал(а):прямые запросы к БД из клиента
- Simbiat
- Steam Content Support
- Сообщения: 629
- Зарегистрирован: 18.08.2008
- Поблагодарили: 29 раз
- Контактная информация:
ну, на момент написания, я не знал альтернатив (= ну кроме загрузки пхп страницы в самом клиенте. А потом мне пришла идея. ВОт её и буду вставлять в новом билде, наверное.MOZGIII писал(а):Simbiat
Самое популярное решение этой проблемы - это JSON API. Доступ к бд напрямую давать, очевидно, нельзя.
DarkSteam R.I.P.
SilverSteam is less so
SilverSteam is less so
- Pechen
- Капитан
- Сообщения: 312
- Зарегистрирован: 25.10.2009
- Благодарил (а): 106 раз
- Поблагодарили: 449 раз
- Контактная информация:
где взять список всех appID(только игр), а то перебирать в цикле не охота. нашел только на стимдб 4800 айдишников -- но как-то маловато, думаю, будет. еще интересно найти список всех игр что были в бандлах или раздавались массово.