列出与列出的标签之一匹配的线程,而不是匹配列出的所有标签

时间:2016-09-14 12:31:57

标签: javascript google-api gmail-api google-api-nodejs-client

我从Gmail API获取线程,而labelIds字段我提供了带有标签的数组。它将仅返回与引用的所有标签匹配的线程:

  

仅返回标签与所有指定标签ID匹配的线程。 (字符串)

但是,我想获取与列出的至少一个标签匹配的所有邮件。

这是我的功能:

gmail.users.threads.list(
 {auth: authClient, userId: 'me', labelIds: ["DRAFT","INBOX"]}, 
 function(err, resp){
  if (err) {
    console.log(err);
    return;
  }
  console.log(resp);
});

有没有办法告诉API我希望所有与至少一个给定labelId相匹配的线程用于具有单个API调用的页面?

1 个答案:

答案 0 :(得分:0)

如果您找到了合适的解决方案,请发布回答,同时:

我的猜测是,这是不可能的,因为这不是Gmail收件箱的工作方式。除非您希望包含所有可能的标签,否则无法一次为多个标签预览页面。

解决方法:

var labels = ["INBOX","DRAFT"];

for( let label of labels ) {
  gmail.users.threads.list(
   {auth: authClient, userId: 'me', labelIds: label}, 
   function(err, resp){
    if (err) {
      console.log(err);
      return;
    }
    console.log(resp);
  });//end(threads.list)
}//end(for-of)

基本上,这会分别为每个标签调用list方法。