与 Gmail 网络 UI 相比,Gmail API 未返回正确的电子邮件以进行日期查询
Gmail API not returning correct emails compared to Gmail web UI for date queries
当使用此处所述的标准查询格式时,Gmail api 和 Gmail 网络 ui 的结果不同 - https://support.google.com/mail/answer/7190。
此问题专门针对参数 after/before 和 newer/older。例如,下面的 Gmail api 查询 "after:2015/11/19 before:2015/11/20" returns 与 Gmail 网络 ui 中的相同查询 运行 相比有不同的结果。网络 ui 看起来是正确的,而 api returns 第二天(20 日)的电子邮件。可能是时区对话问题?
检查过去的问题,我在这里看到了类似的东西 how to use GMAIL API query filter for datetime(服务器将查询处理为 PST 时间)。如果是这种情况,可能值得更新文档或考虑可能的解决方案。
重现问题的步骤。
- 在以下日期的 gmail 帐户中有一些邮件。 Inc天前后。
- 运行 after:2015/11/19 before:2015/11/20 在 Gmail 网站中 ui.
- 使用 https://developers.google.com/gmail/api/v1/reference/users/messages/list
使用 "after:2015/11/19 before:2015/11/20" 查询 Gmail api 的 q 参数
- 比较结果。 (当 运行 这些步骤针对英国 Gmail 帐户时,我有不同意见)
应该只能看到 19 号的邮件,但我在使用 api 时看到了 19 号和 20 号的邮件。网络 ui 按预期工作,只有 returns 封日期为 19 日的电子邮件。
仅供参考:我还使用了其他查询参数,例如 "from: example@example.com" 与 before/after 或 newer/older 参数结合使用。我想简化错误报告/问题。
另外:api 查询我使用名为 node-gmail-api 的节点模块进行查询。检查正在使用的端点的代码是 'messages' 代码:
body: 'GET ' + api + '/gmail/v1/users/me/messages/' + m.id + fields + '\n'
问题是调用的是 'messages' 而不是 'messages/list' 端点吗?根据这个问题的答案? - Why does search in gmail API return different result than search in gmail website?
这是错误/功能吗?是否有解决方法,例如使用 epoch ms. (也不在我看到的文档中)
谢谢
如果您愿意,您可以 list the messages 精确到秒:
q = after:<start_of_day_in_seconds> AND before:<end_of_day_in_seconds>
例如从 Wed, 25 Nov 2015 00:00:00 GMT
到 Wed, 25 Nov 2015 23:59:59 GMT
将是:
q = after:1448409600 AND before:1448495999
当使用此处所述的标准查询格式时,Gmail api 和 Gmail 网络 ui 的结果不同 - https://support.google.com/mail/answer/7190。
此问题专门针对参数 after/before 和 newer/older。例如,下面的 Gmail api 查询 "after:2015/11/19 before:2015/11/20" returns 与 Gmail 网络 ui 中的相同查询 运行 相比有不同的结果。网络 ui 看起来是正确的,而 api returns 第二天(20 日)的电子邮件。可能是时区对话问题?
检查过去的问题,我在这里看到了类似的东西 how to use GMAIL API query filter for datetime(服务器将查询处理为 PST 时间)。如果是这种情况,可能值得更新文档或考虑可能的解决方案。
重现问题的步骤。
- 在以下日期的 gmail 帐户中有一些邮件。 Inc天前后。
- 运行 after:2015/11/19 before:2015/11/20 在 Gmail 网站中 ui.
- 使用 https://developers.google.com/gmail/api/v1/reference/users/messages/list 使用 "after:2015/11/19 before:2015/11/20" 查询 Gmail api 的 q 参数
- 比较结果。 (当 运行 这些步骤针对英国 Gmail 帐户时,我有不同意见)
应该只能看到 19 号的邮件,但我在使用 api 时看到了 19 号和 20 号的邮件。网络 ui 按预期工作,只有 returns 封日期为 19 日的电子邮件。
仅供参考:我还使用了其他查询参数,例如 "from: example@example.com" 与 before/after 或 newer/older 参数结合使用。我想简化错误报告/问题。
另外:api 查询我使用名为 node-gmail-api 的节点模块进行查询。检查正在使用的端点的代码是 'messages' 代码:
body: 'GET ' + api + '/gmail/v1/users/me/messages/' + m.id + fields + '\n'
问题是调用的是 'messages' 而不是 'messages/list' 端点吗?根据这个问题的答案? - Why does search in gmail API return different result than search in gmail website?
这是错误/功能吗?是否有解决方法,例如使用 epoch ms. (也不在我看到的文档中)
谢谢
如果您愿意,您可以 list the messages 精确到秒:
q = after:<start_of_day_in_seconds> AND before:<end_of_day_in_seconds>
例如从 Wed, 25 Nov 2015 00:00:00 GMT
到 Wed, 25 Nov 2015 23:59:59 GMT
将是:
q = after:1448409600 AND before:1448495999