GmailAPI - Node.js - 无法更新用户签名

GmailAPI - Node.js - Cannot update user signatures

我已经使用 gmail API 授权了一个小型节点应用程序。我正在成功收到回复。例如,我可以使用 users.settings.sendAs.list()

查看我的电子邮件签名

但是,当我尝试更改设置(在本例中为签名)时,我得到的响应是空的。因此,就我可以擦除在 gmail 中手动添加的签名而言,更新正在运行,但我无法添加任何新内容。

这是脚本

var google = require('googleapis');
var key = require('./Sig-Updater.json');
var gmail = google.gmail('v1');

var jwtClient = new google.auth.JWT(
  key.client_email,
  null,
  key.private_key,
  ['https://www.googleapis.com/auth/gmail.settings.basic', 'https://www.googleapis.com/auth/gmail.settings.sharing', 'https://www.googleapis.com/auth/gmail.modify', 'https://mail.google.com', 'https://www.googleapis.com/auth/gmail.compose',
'https://www.googleapis.com/auth/gmail.readonly' ],
  'some_email@somewhere.com'
);

jwtClient.authorize(function (err, tokens) {
  if (err) {
    console.log('Auth failed because: ' + err);
    return;
  }
  console.log(tokens)

  gmail.users.settings.sendAs.update({
    userId: 'me',
    auth: jwtClient,
    sendAsEmail: 'some_email@somewhere.com',
    signature: '<div dir="ltr">Hello there</div>'
  }, function (err, resp) {
    if(err){
      console.log(err);
    } else {
      console.log(resp);
    }
  });
});

抱歉任何菜鸟业务 - 新手 API 实际上 node.js

看来我的菜鸟免责声明最终得到了保证,

我在请求中省略了 'resource' 对象。

应该看起来更像

gmail.users.settings.sendAs.update({
userId: 'me',
auth: jwtClient,
sendAsEmail: 'some_email@somewhere.com',
fields: 'signature',
resource: {
    signature: '<div dir="ltr">Hello there</div>'  
    }    
}, function (err, resp) {
    if(err){
      console.log(err);
    } else {
      console.log(resp);
    }
});

希望对以后的人有所帮助!