Gmail API навсегда выдает ошибку «Превышен предел скорости пользователя 429» - PullRequest
0 голосов
/ 05 мая 2020

Мое приложение использует Gmail API. Сегодня, после месяца активности, он вошел в состояние ошибки, и мне нужно было его остановить. Взглянув на файлы журнала, я заметил следующий сценарий:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "rateLimitExceeded",
    "message": "User-rate limit exceeded.  Retry after 2020-05-05T18:16:01.206Z"
   }
  ],
  "code": 429,
  "message": "User-rate limit exceeded.  Retry after 2020-05-05T18:16:01.206Z"
 }
}

Полагая, что я нарушил квоту Gmail, я взглянул на них по адресу https://developers.google.com/gmail/api/v1/reference/quota. Будучи уверен, что я их не нарушал, я подошел к делу с философией и сказал себе, что это, вероятно, временная проблема Gmail, поэтому я дождался желаемого времени (15 минут) и вручную сделал новый запрос. Ответ на этот новый запрос следующий:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "rateLimitExceeded",
    "message": "User-rate limit exceeded.  Retry after 2020-05-05T18:31:03.075Z"
   }
  ],
  "code": 429,
  "message": "User-rate limit exceeded.  Retry after 2020-05-05T18:31:03.075Z"
 }
}

Я ждал 15 минут ... и снова

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "rateLimitExceeded",
    "message": "User-rate limit exceeded.  Retry after 2020-05-05T18:46:29.239Z"
   }
  ],
  "code": 429,
  "message": "User-rate limit exceeded.  Retry after 2020-05-05T18:46:29.239Z"
 }
}

Я заявляю, что получение токена доступа работает правильно:

curl "https://www.googleapis.com/oauth2/v4/token" --data "client_id=<my_client_id>&client_secret=<my_client_secret>&refresh_token=<my_refresh_token>&grant_type=refresh_token"

Ответ:

{
  "access_token": "here_my_access_token",
  "expires_in": 3599,
  "scope": "https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/contacts.readonly",
  "token_type": "Bearer"
}

, а ошибка 429 - это запрос на чтение электронных писем с определенного адреса:

curl "https://content.googleapis.com/gmail/v1/users/me/messages?labelIds=INBOX&fields=messages/id&q=from:<email_address>" -H "Authorization: Bearer <access_token>"

Я не могу понять, что получилось. Приложение находится в разработке, и я не могу позволить себе такую ​​проблему. Может ли кто-нибудь помочь мне выяснить причину и исправить ее?

Мои квоты: enter image description here

...