threads.get()和messages.get()如何对它们返回的结果进行排序似乎没有记录。threads.get()和messages.get()返回项目列表的顺序是什么?
订单的下降日期/时间?
threads.get()和messages.get()如何对它们返回的结果进行排序似乎没有记录。threads.get()和messages.get()返回项目列表的顺序是什么?
订单的下降日期/时间?
我只是想说,使用JavaScript库 - messages.list不返回日期ASC或日期DESC。据我所知,它们是随机返回的。
起初我以为它可能是我的代码,因为我正在使用jQuery $ .each来解析通过JSON,但即使使用本地JavaScript for循环它们仍然不是日期顺序。看起来返回的消息大部分都是DESC日期,但是偶尔会发生一次错误。我做了相当多的操作来试图诊断,思考......也许这些消息属于同一个线程......但事实并非如此。
如果有人有正确的方式继续使用JavaScript库的提示,请发帖。我宁愿只处理消息,因为我的应用程序是一个简单的记录,而不是完整的CRUD消息......所以我只需要一个简单的反向日期顺序消息列表。
附加:我也使用threads.list和threads.get来返回消息,它们在返回时更加随机排序。真的很喜欢某人发布正确的方式来检索按日期排序的邮件。这里复制的代码参照任何/所有愿意看看
function makeApiCall() {
gapi.client.load('gmail', 'v1', function() {
//console.log('inside call: '+myquery);
var request = gapi.client.gmail.users.threads.list({
'userId': 'me',
'q': myquery
});
request.execute(function(resp) {
//$('.ASAP-emailhouse').append(message+'<br>');
jQuery(document).ready(function($) {
var nummessages = resp.threads.length;
for (i = 0; i < resp.threads.length; i++) {
//$('.ASAP-emailhouse').append(resp.messages[i].id+'<br>');
var threadId = resp.threads[i].id;
var messagerequest = gapi.client.gmail.users.threads.get({
'userId': 'me',
'id': threadId
});//end var message request
messagerequest.execute(function(messageresp) {
for (m = 0; m < messageresp.messages.length; m++) {
//$('.ASAP-emailhouse').append(messageresp.messages[m].payload.headers.length+'<br>');
for (n = 0; n < messageresp.messages[m].payload.headers.length; n++) {
//$('.ASAP-emailhouse').append(messageresp.messages[m].payload.headers[n].name+'<br>');
if(messageresp.messages[m].payload.headers[n].name == 'Date'){
$('.ASAP-emailhouse').append(messageresp.messages[m].payload.headers[n].value+'<br>');
}
}
}
});
}//end for each message
});//end jquery wrapper for wordpress
});//end request execute list messages
});//end gapi client load gmail
}
我还集成了Gmail API,并可以确认线程和电子邮件以随机顺序返回。 – Devfly 2015-02-05 18:54:33
耶!对我而言,开始并不疯狂 - 对于API以随机顺序返回而言并不那么好。所以我想我们必须做messages.list调用,通过那些制作messages.get调用,获取日期,将ID,Date放入一个新对象,重新排序,然后再使message.get再次调用。疯? – MegPhillips 2015-02-06 16:46:01
您也可以使用搜索语法通过电子邮件过滤日期:https://support.google.com/mail/answer/7190?hl = zh_CN – Devfly 2015-02-06 22:06:15
我已经通过javascript库实现了新的gmail API。 users.messages:list方法的响应会返回为JSON对象,看起来是Date ASC顺序。在作为可选查询参数的一部分交付之前,我还没有在文档中找到任何对响应进行排序的方法。
线程始终按日期排序DESC,并且邮件始终按日期排序ASC。目前没有任何参数可以改变这一点。
这似乎不再是真实的(至少对于消息)。我尝试过'messages.list' api,并且它返回按日期DESC排序的消息,或多或少。我说“或多或少”,因为当迭代消息并打印日期时,每隔一段时间后,一条消息就会被插入到打印的消息日期序列中。 – john2x 2016-11-17 08:57:55
看起来线程按创建线程的日期排序,而不管收到线程中最近的消息的时间。 – 2017-07-03 15:38:50
来到这里,通过谷歌,因为我一直在寻找这个自己。
经过更多的挖掘,看起来messages.list
根据historyId
DESC返回消息。所以最后修改的消息在上面。
这也似乎在文档here第3点中说明:
合并更新到您的缓存的结果。您的应用程序应该将最近消息的历史标识(第一条消息存储在列表响应中)存储以供将来部分同步。
@Eric DeFriez有什么提示? – user454322 2014-11-07 08:16:01