Gmail API:resultSizeEstimate 给出奇数

Gmail API : resultSizeEstimate gives odd numbers

https://developers.google.com/gmail/api/v1/reference/users/messages/list

Gmail API 允许检索对给定查询的邮件数量的估计值(来自:send1@gmail.com is:unread)。不知何故 API returns 的数字似乎与网络邮件中显示的数字非常不同。

知道如何 return 实际数字吗?

resultSizeEstimate 只是一个估计值,不保证对于一般查询是准确的。它应该为特定标签("label:MYLABEL" 或 "label:MYLABEL is:unread")的查询提供更合理(仍然是估计)的数字。

遗憾的是,目前没有获取实际数字的方法,只能检索所有数字并查看返回列表的大小。

部分答案 - 我也达到了 103 的限制。

我注意到,通过使用 Google API 的 maxResults 参数,我得到了不同但仍然无效的结果。

使用 maxResults 的这个值:

request = service.users().messages().list(userId=user_id, labelIds=formatted_labels)

--> resultSizeEstimate = 103

使用 maxResults 的这个值:

request = service.users().messages().list(userId=user_id, labelIds=formatted_labels, maxResults=100)

--> resultSizeEstimate = 103

使用 maxResults 的这个值:

request = service.users().messages().list(userId=user_id, labelIds=formatted_labels, maxResults=1000)

--> resultSizeEstimate = 511

使用 maxResults 的这个值:

request = service.users().messages().list(userId=user_id, labelIds=formatted_labels, maxResults=50)

--> resultSizeEstimate = 52

这并非适用于所有情况,但可能有所帮助。您可以使用 Users.labels:get

获取给定标签下的确切电子邮件数量

https://developers.google.com/gmail/api/v1/reference/users/labels/get

messagesTotal 值为您提供了该数字。

不幸的是,正如其他人所注意到的,使用 Users.messages:list 列出消息或进行搜索不会 return 获得准确的结果。