根据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调用上花费额外的配额单位),还是有更简单的方法?
答案 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可以进一步提供关于批量使用的有用想法。