2017-01-19 23 views
1

Если я буду использовать стандартную ссылку для разбора инвентаря Steam пользователей
(https://steamcommunity.com/profiles/ {steamid}/inventory/json/730/2)
более 2-3 раз в минуту, я получу запрещен от Steam api до 5 минут. Как я могу разобрать его без запретов? Использование node.js.Как разобрать парную инвентаризацию без запретов

+1

совершать звонки с нескольких разных серверов. например, простой скрипт php может «отмыть» происхождение запроса и высветить ответ на основное приложение. – dandavis

+0

Я говорю, что я использую node.js, а не php. –

ответ

2

Сохраните полученный результат с первого запроса и повторно используйте его вместо повторного запроса Steam каждый раз, когда вы хотите прочитать данные.
псевдокод:

if(!cache) 
    getDataFromSteam() 
    saveDataToCache() 
else 
    getDataFromCache() 
+0

Это не очень хорошая идея, если у меня много пользователей. –

+0

Почему бы и нет? [Другие ответы] (http://stackoverflow.com/a/21135570) предлагают использовать кеш, а крупные сайты, такие как tf2wh, также полагаются на систему кэширования, так как маловероятно, что инвентарь пользователя будет меняться несколько раз в короткий период. –

+0

Хорошо, сейчас я использую API своего друга (он не хочет рассказывать мне, как он это делает). Мой сайт в среднем имеет 100-200 онлайн, и есть много новых пользователей. Мне нужно загружать инвентарь без каких-либо запретов, потому что это не серьезно –

0

Если вы отправляете слишком много запросов вы отправляете слишком много запросов. Это факт, который вы должны принять и работать с этим. Я знаю из собственного тестирования, что вы ограничены 200 вызовами через 5 минут. У вас есть несколько вариантов:

  • Внедрение процедуры, которая ограничивает вызовы до 200 в 5 минут и не более, чтобы избежать запрета.
  • Кэш вызовов, которые вы делаете, чтобы избежать дублирования вызовов для одного пользователя.
  • Используйте другие IP-адреса, упомянутые @Dandavis.