Скребок Google App Engine для Steam

Итак, на данный момент мы пытаемся написать базовую страницу HTML 5, которая при нажатии кнопки возвращает информацию о том, находится ли пользователь в Steam в игре, в автономном режиме или в сети. Мы посмотрели на API Steam, и чтобы найти эту информацию, ему требуется 64-битный идентификатор человека (steamID64), а нам на веб-сайте дается только имя пользователя. Чтобы найти их 64-битный идентификатор, мы попытались очистить веб-сайт (steamidconverter.com), чтобы получить 64-битный идентификатор пользователя из его имени пользователя. Мы попытались сделать это с помощью javascript, но, конечно же, столкнулись с междоменной блокировкой, не позволяющей нам получить доступ к этим данным с нашего веб-сайта Google App Engine.

У меня есть опыт работы с Python, поэтому я попытался выяснить, как получить HTML-код с этого веб-сайта (в виде steamidconverter.com/(personsusername)) с помощью Python. Это был успех в очистке благодаря другому сообщению на Stack Overflow.

НО, я понятия не имею, как вернуть эти данные обратно в javascript и заставить его выполнять остальную часть работы. Я в тупике и действительно нуждаюсь в помощи. Все это есть в Google App Engine. Все, что есть на данный момент, это кнопка, которая запускает простой javascript, который пытается использовать JQuery для возврата содержимого страницы, но терпит неудачу. Я не знаю, как интегрировать два!

Пожалуйста помоги!


person user1504773    schedule 05.07.2012    source источник


Ответы (2)


Почему вы не используете Steam в качестве поставщика OpenID? Похоже, это даст вам идентификатор пользователя:

Steam может выступать в качестве провайдера OpenID. Это позволяет вашему приложению аутентифицировать SteamID пользователя, не требуя от него ввода имени пользователя или пароля Steam на вашем сайте (что будет нарушением Условий использования API). Просто загрузите библиотеку OpenID для вашего языка и платформы по выбору и используйте. http://steamcommunity.com/openid в качестве провайдера. (Возвращенный заявленный идентификатор будет содержать 64-битный SteamID пользователя.

person matt b    schedule 05.07.2012
comment
Тем не менее проблема остается, как мне теперь получить статус человека, так как мне все еще нужно очистить веб-сайт, который предоставляет API (api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/, разумеется, заменив XXX на ключ, который мы получили при регистрации, а YYY на Steam ID человека. ), чтобы получить информацию об игре, на этой странице. Это также создает междоменный блок. Как работает эта часть и как я могу сделать это наиболее эффективно. Я, вероятно, не понимаю что-то простое. Извините, если я покажусь глупым. - person user1504773; 05.07.2012
comment
Обычно вы хотите, чтобы ваш бэкэнд-код — материал Python AppEngine здесь — взаимодействовал со сторонним API (в данном случае Steam), так как проблематично связываться с чужим API в Javascript, работающем в браузере, по причинам, которые вы мы узнали. Я не уверен в конкретных деталях API Steam, поскольку я не знаком с ним. - person matt b; 05.07.2012
comment
Обратите внимание на основную проблему использования другой веб-инфраструктуры в том, что она должна быть совместима с мобильными устройствами и работать в браузере. У него не должно быть локальной памяти. Идея openID кажется многообещающей, я буду развивать ее дальше. Большое спасибо за все, и я хотел бы как-нибудь проголосовать за ваш пост. Хотя у меня меньше 15 реп=) Большое спасибо! - person user1504773; 05.07.2012

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

Теперь по вашему вопросу. Все это может произойти в запросе в обработчике, если вы используете веб-фреймворк, такой как Tornado, и обработчик может возвращать json на странице, и вы можете отображать этот json, используя свой код javascript.

Посмотрите на веб-фреймворк для Python, такой как Tornado или Django, чтобы помочь вам с возвратом и отображением данных.

person sean    schedule 05.07.2012