【问题标题】:Using Gmail API search parameters使用 Gmail API 搜索参数
【发布时间】:2017-02-19 23:54:20
【问题描述】:

我正在使用 gmail API 来搜索消息。我想包含一些搜索参数,但我不知道如何使用多个搜索参数。我想做 old_than 和 -unsubscribe

$(document).ready(function() {
    var submitButton = 0;

  function randomPicture (){
    min = Math.ceil(1);
    max = Math.floor(14);
    var pictureNumber = Math.floor(Math.random() * (max - min)) + min;
    $('.sidetext').css('background-image', 'url(images/pic'+pictureNumber+'.jpg)');
    console.log(pictureNumber);
  }

    $('#submit').click(function(){
      randomPicture();
      var searchTerm = $('#input-person').val();
      listMessages('me', searchTerm, listMessageCallback);
       submitButton = submitButton + 1;
     $('.quote').remove();  

    });

    function listMessages(userId, query, callback) {
      $('#content').css('left', $('sidetext'.offsetLeft));
      var getPageOfMessages = function(request, result) {
          request.execute(function(resp) {
            result = result.concat(resp.messages)
        };

      var initialRequest = gapi.client.gmail.users.messages.list({
        'userId': userId,
        'q': query
      });

      // var Request = gapi.client.gmail.users.messages.list({
      //     'q': 'older_than:1y'
      // });

      getPageOfMessages(initialRequest,[]);
    }

    function listMessageCallback(result){
      console.log(result[0].id);
      var messageId = result[0].id;
      getMessage('me', messageId, getMessageCallback)

    }

    function getMessageCallback(result){
      console.log(result)
      $('#content').html(result.snippet);
      $('#content').css('font-size', '20px');
      $('#content').css('bottom-margin', '0');
      // $('#content').app
    }

    function getMessage(userId, messageId, callback) {
      var request = gapi.client.gmail.users.messages.get({
        'userId': userId,
        'id': messageId,
        'nonce': Math.random()
      });
      request.execute(callback);
    }


  })

【问题讨论】:

  • 您可以在查询中使用AND,例如older_than:1y AND newer_than:2y

标签: javascript gmail-api


【解决方案1】:

根据Searching for Messages

您可以使用 messages.list 和threads.list 方法。这些方法接受 q 参数 支持与 Gmail 网络界面相同的高级搜索语法

样本:

GET https://www.googleapis.com/gmail/v1/users/me/messages?q="in:sent after:2014/01/01 before:2014/01/30"

您可以组合Search operators you can use with Gmail中所述的多个参数。

Sample:

Messages that match multiple terms  
OR or { }

Example: from:amy OR from:david

Example: {from:amy from:david}

【讨论】:

  • 谢谢!我实际上不得不将它们列为字符串对象,但我让它工作了。不过,我现在的问题是如何使用 +word 来匹配确切的单词……它不能是字符串,因为它需要读取加号。有什么想法吗?
猜你喜欢
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 2016-06-06
相关资源
最近更新 更多