我有一个使用gmail API和javascript处理gmail消息的网页。我被困在某个特定的时间戳之后想要检索消息的位置。
这是列出邮件的代码的一部分
{
var request = gapi.client.gmail.users.messages.list({
'userId': 'me',
'maxResults': 10
});
我想列出长日期1531958459000
之后的邮件。
我的尝试如下
{
var request = gapi.client.gmail.users.messages.list({
'userId': 'me',
'after':'1531958459000',
'maxResults': 10
});
,它似乎不起作用。而不是在那之后收到消息,而是随机获得10条消息,就像没有after
部分的代码一样。
有帮助吗?
答案 0 :(得分:0)
这里的代码有两个问题。
首先,您不能将字段after
放入请求正文中。但是,您具有q
字段,可用于输入Gmail查询,就像在Gmail应用程序中一样。查看文档以了解更多详细信息:https://developers.google.com/gmail/api/v1/reference/users/messages/list
第二,似乎after
查询不支持以毫秒为单位的时间戳,而是以秒为单位。
因此,您的代码应如下所示:
var request = gapi.client.gmail.users.messages.list({
'userId': 'me',
'q':'after:1531958459',
'maxResults': 10
});
最诚挚的问候!
答案 1 :(得分:0)
我知道了。基本上,其他查询参数接受'q':
作为查询和任何参数。这些参数应符合根据google's documentation进行的常规Gmail收件箱搜索的格式。
所以我不得不将长日期更改为yyyy/mm/dd
格式。我使用this answer的提示来做到这一点。
然后修改我的代码,如下所示:
{
var ld = new Date(lastupdatedtime).toJSON().slice(0, 10).split("-").reverse().join("/");//lastupdated time in google search query string like format
var cd = new Date(+ new Date()).toJSON().slice(0, 10).split("-").reverse().join("/");//the current time in google search query string like format
var search_query = "after:"+ld+" before:"+cd;
var request = gapi.client.gmail.users.messages.list({
'userId': 'me',
'q': search_query,
'maxResults': 10//the number of results to check through
});
效果很好。