2016-02-04 118 views
0

我对使用公共API非常新,我遇到了一个问题,我不太清楚如何处理。最重要的是,我已经注册了Google表格,我将在我的游戏之夜获得大约100-150名玩家注册。发生这种情况时,我需要通过他们,确保他们所有的150个人都拥有这个游戏,并且在游戏中至少玩了50个小时,这是我对抗我越来越多的smurf账户的措施。从API中获取大量数据

因此,我在我的服务器上编写了一些代码,它将查看提供的Steam ID,然后根据他们玩的小时数获取他们自己的游戏。然后,我确定有问题的游戏,然后我只是通过或失败。

虽然这一切都很好,但我更担心我发送的请求数量,如果我应该以不同的方式处理。现在,如果我有150名玩家,我会发送150个请求,并且这看起来不是正确的做法。

通过他们的API浏览,我无法找到任何种类的方法,将返回我的游戏拥有的范围的球员。因此,我能做的唯一事情就是我上面所描述的。

我的问题是这样的:

当使用公共的API,如蒸汽的API,它是确定用我上面的方法呢?发送如此多的请求会让我被列为潜在的垃圾邮件发送者,或者在我开始担心之前该数字会是多少?

回答

1

是的,使用您的方法绝对没问题。


Steam Web API

Steam Web API Terms of Use

您被限制为十万(100,000)要求每天蒸汽 的Web API。

在使用公共API(不仅是Steam的)时,总是要了解使用条款。

如果你达到那个数字,你可能开始担心。然后,可能发生的最糟糕的事情就是您的请求将不再满足,并且您的API密钥可能会被撤销(这是它的原因之一)。

有猜测该Web API有进一步的限制:


Steam Community Data

警告:不推荐使用社区XML数据。我们建议尽可能使用Web API。

由于建议使用Web API代替,所以社区数据很可能具有低得多的速率限制。


注:

虽然发展completionist.me我从来没有打任何的这些限制。一次是30,000 /天,并且没有一次不满意的请求发生(至少不是由速率限制引起的)。

如果您想确保在客户端使用作业队列进行限制,以控制请求速率并在一段时间后重试失败的作业(API请求)。

鉴于一个API已经很好的实施,你会在遇到任何“麻烦”之前提交一个HTTP 429 - Too Many Requests。据我所知,尽管Steam的Web API并非如此。如果发生错误(大部分时间),它会静默失败,而使用HTTP 403。

0

在Steam这样的主要提供商的背景下,每天发送150个API调用是没有用的。如果您的服务变得喋喋不休,他们将开始遏制您的请求,但Steam的截止时间应该大约是每秒一个请求。

如果API提供批处理调用或查询调用,则最好使用它。例如,GetPlayerSummaries应该允许您在一次调用中提供多个Steamids。为了获得详细信息,据我所知,Steam不提供批量API,使您正在做的事情的正确方法。 (切线评论:你可能想要考虑这是否是实现你的目标的最佳方式,或者是否改变游戏设计/配对/等等,使得smurf账户价值较低可能会更有效地攻击问题根源。)