我正在使用 gmail API 搜索用户的电子邮件。我创建了以下搜索查询:
ticket after:2015/11/04 AND -from:me AND -in:trash
当我在 Gmail 的浏览器界面中运行此查询时,我收到 11 条消息(如预期)。然而,当我在 API 中运行相同的查询时,我只收到 10 条消息。我用来查询 gmail API 的代码是用 Python 编写的,如下所示:
searchQuery = 'ticket after:2015/11/04 AND -from:me AND -in:trash'
messagesObj = google.get('/gmail/v1/users/me/messages', data={'q': searchQuery}, token=token).data
print messagesObj.resultSizeEstimate # 10
我将相同的消息发送到另一个 Gmail 地址,并从该电子邮件地址对其进行了测试,(令我惊讶的是)它确实显示在具有其他电子邮件地址的 API 搜索中,因此问题不在于电子邮件本身。
在通过各种测试 gmail 帐户无休止地发送电子邮件之后,我*认为(但不是 100% 确定)浏览器界面搜索功能对"me"
。似乎在 API 搜索中,它不包括来自同名电子邮件地址的电子邮件,而这些结果实际上包含在浏览器搜索的结果中。例如:如果"Pete Kramer"
发送一封电子邮件,来自[email protected]
to [email protected]
(两者的名称都设置为"Pete Kramer"
)它将显示在浏览器搜索中,并且不会显示在 API 搜索中。
任何人都可以确认这是问题所在吗?如果是这样,有没有办法绕过这个问题以获得与浏览器搜索返回的相同结果?或者有其他人知道为什么 gmail 浏览器搜索的结果与 gmail API 搜索的结果不同?欢迎提供建议!
我怀疑这是after
给您带来麻烦的查询参数。2015/11/04 不是有效的 ES5 ISO 8601 日期。你可以尝试替代方案after:<time_in_seconds_since_epoch>
# 2015-11-04 <=> 1446595200
searchQuery = 'ticket AND after:1446595200 AND -from:me AND -in:trash'
messagesObj = google.get('/gmail/v1/users/me/messages', data={'q': searchQuery}, token=token).data
print messagesObj.resultSizeEstimate # 11 hopefully!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)