错误429:令牌不足(DefaultGroupUSER-100s)用户定义了什么?

时间:2017-01-16 11:54:12

标签: google-api google-oauth google-sheets-api gapi

tl / dr使用相同的客户端ID计数100个设备,只有100个用户,有自己的限制或一个用户共享限制?

我有一个可以读取和写入Google表格的网页。

由于网页需要知道某个单元格是否已更改,因此每1000ms轮询一次服务器:

var pollProcId = window.setInterval(pollForInput, 1000);

其中pollForInput只有一个:

gapi.client.sheets.spreadsheets.values.get(request).then(callback);

当我尝试将这个应用程序与100名学生一起使用时,我收到了许多429个错误代码(比我成功读取的更多)以回应google.apps.sheets.v4.SpreadsheetsService.GetValues个请求:

Error code 429-a-thon

我的许多用户甚至没有看到第一个请求回来。

据我所知,根据the error responses page,这些是AnalyticsDefaultGroupUSER-100s错误:

  

表示每个项目每个用户每100秒请求配额   已经筋疲力尽了。

但是我的应用程序每1000毫秒只请求一次,我不希望看到这么多429因为我每100秒(每秒1次)有100个请求的限制所以只有那些应用程序的用户没有在100秒内完成应该收到429

我知道我应该实施指数退避(我会做,我保证),但我担心我误解了这个背景下的“用户”是什么。

每个用户都在使用他们自己的设备(因此可能有不同的IP地址),但他们都在使用我的“客户端ID”。

此方案是否计算每秒发出一个请求的用户数量,或者每秒发出一百个请求的单个用户?

1 个答案:

答案 0 :(得分:1)

嗯,per user quota中的用户表示单个用户发出请求。因此,让我们使用表格API,100的配额为Read requests per 100 seconds per user。这意味着只有一个用户每秒可以发出请求。请注意,Read请求与Write请求具有相同的配额集。但这两套配额都有自己的配额,并没有分享相同的限额。

如果您想要比默认配额更高的配额,则可以使用此form或访问开发者控制台申请更高的配额,然后点击要增加的配额中的铅笔图标。

我还建议您尽快执行指数退避,因为它可以帮助您避免出现此类错误。

希望它对你有所帮助。