Gmail API的配额单位如何运作?

时间:2016-05-28 19:56:22

标签: gmail gmail-api

根据gmail' API docs,限制如下:

API Limit Type  Limit
Daily Usage 1,000,000,000 quota units per day
Per User Rate Limit 250 quota units per user per second, moving average (allows short bursts)

在下面的表格中,文档说messages.get需要5个配额单位。

在我的情况下,我很有兴趣每秒轮询我的收件箱以检查新邮件,并获取这些邮件的内容(如果有的话)。

问题1 :这是否意味着我每秒花费5个配额单位,而且我的配额不足?

问题2 :如何检查" new"消息?也就是说,自我上次进行API调用以来已经到达的消息?我需要添加"阅读"每次API调用后给消息添加标签(在"修改" API调用上花费额外的配额单位),还是有更简单的方法?

2 个答案:

答案 0 :(得分:1)

问题1:

没错。您将在轮询上花费(5 * 60 * 60 * 24 =)432000个配额点,这远远不是极限。如果您希望Google通知您新邮件而不是自己投票,也可以实施push notifications

问题2:

Listing messages在某个时间戳之后查询邮件undocumented feature,以纪元为单位以秒为单位。

如果您想在2016年5月29日星期日07:00 00 GMT之后收到消息,您只需在after:1464505200查询参数中提供值q

答案 1 :(得分:1)

问题1:

你是对的,并且在给定的documentation中也有详细说明。

问题2:

更简单的方法,正如您所问,并且还鼓励使用Batching Requests。如文档中所述,Gmail API支持批处理,允许您的客户端将多个API调用放入单个HTTP请求中。

这个相关的SO帖子 - Gmail API limitations for getting mails可以进一步提供关于批量使用的有用想法。