Google Calendar API在批处理过程中返回超出速率限制的错误

问题描述 投票:0回答:1

在我之前的question之后...我将Google Calendar API调用更改为batch,但是该批处理中的某些请求返回403-rateLimitExceeded“超出速率限制”错误。批次中最多有50个相同类型的请求,最常见的是PATCH。但是即使该批处理包含少于10个请求,也会发生错误。平均而言,所有请求中只有大约50%成功。

示例请求(带有一个请求的部分):

--googlebatch_20200513_171515_647
Content-Type: application/http
Content-ID: <item:0>

PATCH /calendar/v3/calendars/XXX/YYY
Content-Type: application/json
Content-Length: 449

{
  "summary": "Opakovaná aktivita 2",
  "description": "",
  "id": "XXX",
  "start": { "dateTime": "2020-05-07T09:00:00+02:00" },
  "end": { "dateTime": "2020-05-07T09:30:00+02:00" },
  "location": "", 
  "visibility": "default", 
  "reminders": {"useDefault": false},
  "transparency": "opaque", 
  "extendedProperties": {
    "private": {
      "X-QIID": "29037717,10",
      "X-QISyncOn": "1"
    }
  }
}
...
next requests
... 
--googlebatch_20200513_171515_647--

示例响应:

--batch_preSx1sqdvk_AAP51GVWcoo
Content-Type: application/http
Content-ID: <response-item:0>

HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=UTF-8
Date: Mon, 13 May 2020 15:15:16 GMT
Expires: Mon, 13 May 2020 15:15:16 GMT
Cache-Control: private, max-age=0
Content-Length: 199

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "rateLimitExceeded",
    "message": "Rate Limit Exceeded"
   }
  ],
  "code": 403,
  "message": "Rate Limit Exceeded"
 }
}
--batch_preSx1sqdvk_AAP51GVWcoo--

我不明白Google API为什么返回此错误,因为当我发送批处理请求时,我只是发送了批处理,而单个请求的执行则由Google本身控制。因此,我无法影响它们的发布速度。如果批处理执行速度太快,Google为什么不降低它的执行速度并成功完成所有请求?

我还能做什么?错误可能在哪里?您向我推荐什么?

谢谢。问候,彼得。

google-calendar-api limit
1个回答
0
投票

使用服务帐户时, known issues的Calendar API抛出403错误的时间比预期的早

解决方法将使用impersonation,即使客户帐户代表用户操作。这样可以避免403错误。

请参见here以获取代码示例。

© www.soinside.com 2019 - 2024. All rights reserved.