Если я буду использовать стандартную ссылку для разбора инвентаря Steam пользователей
(https://steamcommunity.com/profiles/ {steamid}/inventory/json/730/2)
более 2-3 раз в минуту, я получу запрещен от Steam api до 5 минут. Как я могу разобрать его без запретов? Использование node.js.Как разобрать парную инвентаризацию без запретов
ответ
Сохраните полученный результат с первого запроса и повторно используйте его вместо повторного запроса Steam каждый раз, когда вы хотите прочитать данные.
псевдокод:
if(!cache)
getDataFromSteam()
saveDataToCache()
else
getDataFromCache()
Это не очень хорошая идея, если у меня много пользователей. –
Почему бы и нет? [Другие ответы] (http://stackoverflow.com/a/21135570) предлагают использовать кеш, а крупные сайты, такие как tf2wh, также полагаются на систему кэширования, так как маловероятно, что инвентарь пользователя будет меняться несколько раз в короткий период. –
Хорошо, сейчас я использую API своего друга (он не хочет рассказывать мне, как он это делает). Мой сайт в среднем имеет 100-200 онлайн, и есть много новых пользователей. Мне нужно загружать инвентарь без каких-либо запретов, потому что это не серьезно –
Если вы отправляете слишком много запросов вы отправляете слишком много запросов. Это факт, который вы должны принять и работать с этим. Я знаю из собственного тестирования, что вы ограничены 200 вызовами через 5 минут. У вас есть несколько вариантов:
- Внедрение процедуры, которая ограничивает вызовы до 200 в 5 минут и не более, чтобы избежать запрета.
- Кэш вызовов, которые вы делаете, чтобы избежать дублирования вызовов для одного пользователя.
- Используйте другие IP-адреса, упомянутые @Dandavis.
совершать звонки с нескольких разных серверов. например, простой скрипт php может «отмыть» происхождение запроса и высветить ответ на основное приложение. – dandavis
Я говорю, что я использую node.js, а не php. –