一尘不染

使用Gmail API nodejs创建Gmail过滤器,错误:过滤器没有任何条件

node.js

我在使用Node使用Gmail
API创建过滤器时遇到问题。Auth和范围很好;我收到错误消息“过滤器没有任何条件”。我想我在标题/正文/资源参数上做错了什么,但无法解决。

这是函数,我已经尝试了多种变体:

function createFilter(auth){
var gmail = google.gmail({version:'v1','auth':auth});
// Create filter rule
var data = {
  resource: {
    criteria: {
      from: "someone@gmail.com"
    },
    action: {
      removeLabelIds: ["INBOX"]
    }
  },
  userId: 'me'
}

// Send rule to Gmail
gmail.users.settings.filters.create(data, function (err, result) {
  if (err) {
    console.log( err);
  } else {
    console.log( result );
    callback( result );
  }
 });
};

docs:

创建过滤器https://developers.google.com/gmail/api/v1/reference/users/settings/filters/创建过滤
器资源https://developers.google.com/gmail/api/v1/reference/users/settings /
filters#resource
发出请求 https://github.com/google/google-google-api-nodejs-client/#making-
authenticated-requests


阅读 239

收藏
2020-07-07

共1个答案

一尘不染

这个修改怎么样?

function createFilter(auth){
  var gmail = google.gmail('v1');
  var data = {
    "criteria": {
      "from": "someone@gmail.com",
    },
    "action": {
      "removeLabelIds": [
        "INBOX",
      ],
    },
  };
  gmail.users.settings.filters.create({
    auth: auth,
    userId: 'me',
    resource: data,
  }, function(err, result) {
    if (err) {
      console.log( err);
    } else {
      console.log( result );
      callback( result );
    }
  });
}

注意 :

  • 如果Insufficient Permission发生错误,请添加https://www.googleapis.com/auth/gmail.settings.basic到范围。修改范围后,请删除包含刷新令牌的文件,然后重新授权。这样,新作用域将反映到刷新令牌。

如果这不起作用,对不起。

编辑:

我确认,当我将v27.0.0,v26.0.1和v25.0.0用于googleapis时,Filter doesn\'t have any criteria'会发生的错误。那么您可以将版本降级到v24.0.0吗?当我使用v24.0.0时,它工作正常。据悉,node.js的最新googleapis存在一些错误。所以我正在使用v24.0.0。

2020-07-07