Google Calendar API错误:超出了使用限制

时间:2017-09-21 11:54:00

标签: google-api google-calendar-api

我正在使用Google日历API。

我收到错误消息:

  

超出日历使用限制

详情错误:

{
    "code":    403,
    "errors":  [{
        "domain":  "usageLimits",
        "message": "Calendar usage limits exceeded.",
        "reason":  "quotaExceeded"
    }],
    "message": "Calendar usage limits exceeded."
}

这有时会在插入5个事件或有时超过25个事件时发生,甚至我已经使用批量请求插入事件。有没有专门用于测试日历API的方法?

2 个答案:

答案 0 :(得分:1)

最初的问题是“有没有什么方法专门用于测试日历API?”。这确实是核心问题。关于导致此错误发生的原因缺乏透明度。我已阅读https://support.google.com/a/answer/2905486?hl=en,但这些都不适用于我的申请。如果我知道究竟是什么导致了这个错误,我可以避免它。

我以前有一个Google日历模拟器用于我的大量测试,但它变得过于艰难并且绕过了测试,所以最近转换为使用由免费gmail帐户构成的测试帐户来定位测试数据的插入然后将其读出来。我不必非常努力或做很多插入来导致此错误。我已经实现了从6秒开始的指数退避;在最初失败后25分钟允许插入。这是因为在上一次插入到同一帐户后大约两分钟插入单个事件时发生的故障。失败的插入是在相同日历中第9次插入相同数据,持续时间近20分钟,第30次为30分钟。这些在测试环境中不是大数字。

这严重阻碍了测试。我可以看到解决这个问题的唯一方法是获取一个gmail帐户池,当我穿一个帐户时,从池中取出一个新帐户。这不仅对我来说是更多的工作和维护,对谷歌来说也是坏事,因为一堆帐户没有映射到真实用户。

如果有人有更好的主意,我会全神贯注。我更喜欢的是一种选择测试特定谷歌帐户的方式,这意味着用户明确要求谷歌不关心滥用(假设这是错误的理由)。

答案 1 :(得分:0)

我认为您同时进行了太多的API调用。给它一个时间间隔或使用Batching of Requests。还可以使用Exponential Backoff来处理4xx错误重试。

附加说明:

以下可能会导致您的问题根据日历使用限制:

解决

如果用户达到Google日历限制,他们应该可以在几个小时内再次正常编辑他们的日历。在此期间,用户仍可以在日历中查看事件。

更多信息 如果用户看到其中一条消息,则可能是由于以下原因之一:

<强> 1。创建太多事件

如果用户在短时间内在其日历中创建了超过10,000个事件,则该用户可能会失去日历编辑权限。

<强> 2。创建太多日历

如果用户在短时间内创建了超过25个新日历,则该用户的日历可能会进入只读模式。

第3。向外部访客发送过多邀请或电子邮件

为了防止发送垃圾邮件,Google日历会限制用户可以向外部访客发送的邀请数量。此限制因行动而异,通常在100-300位客人之间。

G Suite用户可以从其主域或与其主域关联的辅助域向任意数量的访客发送邀请。

<强> 4。与太多用户共享日历

如果用户在短时间内与许多其他用户共享一个或多个日历,Google日历可能会切换为该用户的只读模式。手动更新共享设置几乎不可能达到此限制,但某些基于API的工具或第三方应用可能会发生这种情况。