threads.get()和messages.get()以什么顺序返回项目列表?

时间:2014-11-04 04:50:46

标签: gmail-api

似乎没有记录threads.get()和messages.get()如何对它们返回的结果进行排序。

订单是按降序日期/时间吗?

4 个答案:

答案 0 :(得分:1)

线程始终按日期排序DESC,并且消息始终按日期ASC排序。目前没有任何参数可以改变这一点。

答案 1 :(得分:1)

我想说使用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

}

答案 2 :(得分:0)

我已经通过javascript库实现了新的gmail API。 users.messages:list方法的响应以json对象的形式返回,似乎是Date ASC命令。我没有在文档中遇到任何方式在响应作为可选查询参数的一部分传递之前对响应进行排序。

答案 3 :(得分:0)

通过谷歌来到这里因为我自己在寻找这个。

经过多次挖掘后,似乎messages.list根据historyId DESC返回消息。因此,最后修改的消息位于顶部。

这似乎也在第3点的文档here中说明:

  

将更新合并到缓存的结果中。您的应用程序应存储最新消息的historyId(列表响应中的第一条消息),以便将来部分同步。