Gmail API 错误 429rateLimitExceeded 即使没有任何活动

2024-01-27

我有一个与 Gmail API 集成的 NodeJS 应用程序。 当我尝试访问 Gmail API 时,出现以下错误:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "rateLimitExceeded",
    "message": "User-rate limit exceeded.  Retry after 2017-03-26T18:15:52.102Z"
   }
  ],
  "code": 429,
  "message": "User-rate limit exceeded.  Retry after 2017-03-26T18:15:52.102Z"
 }
}

我等待一段时间,然后重试,并得到同样的错误。 我等了几个小时,看到 API 控制台中没有任何活动,我再次尝试,得到了同样的错误。


我认为发生的情况是您同时提出了太多请求。您可以在中看到您的错误Gmail 每用户限制 https://developers.google.com/gmail/api/v1/reference/quota#gmail_per-user_limits。考虑使用指数退避 https://developers.google.com/drive/v3/web/handle-errors#exponential-backoff.

以下是您收到该错误的可能原因:

并发请求

Gmail API 强制执行每个用户的并发请求限制(在 除了每个用户的速率限制之外)。这个限制是所有人共享的 Gmail API 客户端访问给定用户并确保没有 API 客户端正在使 Gmail 用户邮箱或其后端服务器超载。

为单个用户发出多个并行请求或批量发送 大量请求可能会触发此错误——大量请求也可能会触发此错误 访问 Gmail 用户邮箱的独立 API 客户端数量 同时地。如果超出此限制,则会出现 HTTP 429 Too Many Requests 返回“用户并发请求过多”错误。你的客户 可以使用标准指数退避重试请求。

不能以任何理由增加此每用户限制。

其他原因可能包括:

邮件发送限制

Gmail API 强制执行标准的每日邮件发送限制(这些限制) 付费 G Suite 用户与免费 gmail.com 用户的限制有所不同)。

这些限制是针对每个用户的,并且由所有用户的客户端共享, 无论是 API 客户端、本机/Web 客户端还是 SMTP MSA。如果这些限制 超出 HTTP 429 Too Many Requests“超出用户速率限制” 返回提及“(邮件发送)”的错误并给出重试时间。 请注意,超出每日限制可能会导致这些类型的 在请求被接受之前几个小时出现错误,因此您的 客户端可以使用标准指数退避重试请求。

这些每用户限制不能以任何理由增加。

邮件发送管道很复杂:一旦用户超出了他们的 配额,API 开始之前可能会有几分钟的延迟 返回 429 错误响应。所以你不能假设 200 回复表示邮件已成功发送。

带宽限制

该 API 对每用户上传和下载带宽有限制 等于但独立于 IMAP。这些限制相当慷慨 并在给定用户的所有 Gmail API 客户端之间共享。

这些限制通常仅在异常或滥用情况下才会达到 情况。如果超出这些限制,则会出现 HTTP 429 Too Many Requests 返回“超出用户速率限制”错误并指定重试时间。 请注意,超出每日限制可能会导致这些类型的 在请求被接受之前几个小时出现错误,因此您的 客户端可以使用标准指数退避重试请求。

这些每用户限制不能以任何理由增加。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gmail API 错误 429rateLimitExceeded 即使没有任何活动 的相关文章

随机推荐