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

List threads that match one of labels listed rather than match all labels listed

我正在从 Gmail API 获取线程,作为 labelIds 字段,我提供了带有标签的数组。它将 return 仅匹配所有引用的标签的线程:

Only return threads with labels that match all of the specified label IDs. (string)

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

这是我的功能:

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

有没有办法通过单个 API 调用告诉 API 我希望所有线程至少匹配一个页面的给定 labelIds 中的一个?

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

我猜这是不可能的,因为 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 方法。