2016-02-04 57 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賬戶價值較低可能會更有效地攻擊問題根源。)