Google api GMail API用户速率在较长时间内受到限制

Google api GMail API用户速率在较长时间内受到限制,google-api,gmail-api,google-api-java-client,Google Api,Gmail Api,Google Api Java Client,我正在尝试打一个简单的电话来获取帐户的电子邮件地址: gmail().users().getProfile("me").execute().getEmailAddress(); 但是,它始终返回用户速率受限的响应: com.google.api.client.googleapis.json.GoogleJsonResponseException: 429 unknown { "code" : 429, "errors" : [ { "domain" : "usageLimits

我正在尝试打一个简单的电话来获取帐户的电子邮件地址:

gmail().users().getProfile("me").execute().getEmailAddress();
但是,它始终返回用户速率受限的响应:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 429 unknown
{
  "code" : 429,
  "errors" : [ {
    "domain" : "usageLimits",
    "message" : "User-rate limit exceeded.  Retry after 2019-09-18T18:49:00.748Z",
    "reason" : "rateLimitExceeded"
  } ],
  "message" : "User-rate limit exceeded.  Retry after 2019-09-18T18:49:00.748Z"
}
不管在上述时间之后等待,它总是返回此响应。在过去的14个小时里,我让它每小时重试一次,但它仍在给出这个响应。我已经检查了我的API配额,并确认在这段时间内没有其他用户使用GMail


我确实实现了指数退避,但是由于昨天我的脚本出现了一个内部问题,在短时间内有许多对GMail API的请求。正如预期的那样,它达到了利率限制,但似乎此后利率限制并未“关闭”。这个用户帐户被列入黑名单了吗?我如何才能让帐户重新启动并运行?

答案可能是耐心,也可能是运气。但现在,在最初的请求问题出现24小时后,我的帐户似乎又开始工作了。

根据:

邮件发送限制 Gmail API强制执行标准的每日邮报 发送限制

如果这些限制 超出HTTP 429的请求太多“超出用户速率限制” 返回“邮件发送”错误,并有重试时间

在滚动24小时期间应用

这解释了为什么您需要等待24小时,因为最初的问题


看一看,这样你就知道你超过了哪个配额,以后需要避免

Hi@ziganotschka我偶然发现了这个线程,因为我正在寻找Gmail API中的“超出用户速率限制。重试后”错误。在我的例子中,我使用messages().get方法。即使在最初的问题中,也是“获取”请求。所以,我不明白电子邮件“发送”限制如何适用于get请求?我错过什么了吗?谢谢。它指定:
适用于应用程序发出的所有请求的使用限制
每用户速率限制:每用户每秒250个配额单位
消息。获取:5个配额单位
。感谢您的回复。我关注的是该页面上的“每用户限制”部分,它只提到了发送/带宽限制和并发请求。此外,每个方法配额使用部分首先提到“每日使用限制”,因此,至少我觉得这一页相当混乱。为了确保我理解正确,我最多每秒可以拨打5个message.get呼叫,第6个呼叫将导致超出用户速率限制(为简单起见,将允许短突发的移动平均值放在一边)?应该更像每秒50个呼叫,但这取决于他们如何计算速率(每秒?每分钟?每100毫秒?)?基本上-如果您不断收到错误-降低您的请求速度,例如使用指数退避。