我已使用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的新功能
最佳答案
最终我的Noob免责声明似乎是必要的,
我已经从请求中省略了“资源”对象。
应该看起来更像
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);
}
});
希望以后能对某人有所帮助!